lazMapViewer: More cosmetic changes.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6314 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2018-04-16 21:57:42 +00:00
parent 119046bcbc
commit d70b3d3e26
4 changed files with 505 additions and 480 deletions

View File

@ -59,6 +59,10 @@
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<Linking> <Linking>
<Debugging>
<UseHeaptrc Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<Options> <Options>
<Win32> <Win32>
<GraphicApplication Value="True"/> <GraphicApplication Value="True"/>

View File

@ -257,14 +257,15 @@ begin
end; end;
procedure TLaunchDownloadJob.ExecuteTask(aTask: integer; FromWaiting: boolean); procedure TLaunchDownloadJob.ExecuteTask(aTask: integer; FromWaiting: boolean);
var iTile : integer; var
iTile: integer;
begin begin
iTile := aTask - 1; iTile := aTask - 1;
Queue.AddUniqueJob(TEventJob.Create Queue.AddUniqueJob(TEventJob.Create
( (
@Engine.evDownload, @Engine.evDownload,
TEnvTile.Create(FTiles[iTile], Win), TEnvTile.Create(FTiles[iTile], Win),
false, false, // owns data
Engine.GetTileName(FTiles[iTile]) Engine.GetTileName(FTiles[iTile])
), ),
Launcher Launcher

File diff suppressed because it is too large Load Diff

View File

@ -22,37 +22,36 @@ unit mvJobs;
interface interface
uses uses
Classes, SysUtils,mvJobQueue; Classes, SysUtils, mvJobQueue;
type type
{ TSimpleJob } { TSimpleJob: job with only one task }
//job with only one task TSimpleJob = class(TJob)
TSimpleJob = class(TJob) private
private FRunning, FEnded: boolean;
FRunning,FEnded : boolean; protected
protected function pGetTask: integer; override;
function pGetTask : integer;override; procedure pTaskStarted(aTask: integer); override;
procedure pTaskStarted(aTask: integer);override; procedure pTaskEnded(aTask: integer; aExcept: Exception); override;
procedure pTaskEnded(aTask : integer;aExcept : Exception);override; public
public function Running : boolean; override;
function Running : boolean;override; end;
end;
TJobProc = Procedure (Data : TObject;Job : TJob) of object; TJobProc = procedure (Data: TObject; Job: TJob) of object;
{ TEventJob } { TEventJob: job with only one task (callback an event) }
//job with only one task (callback an event) TEventJob = class(TSimpleJob)
TEventJob = Class(TSimpleJob) private
private FData: TObject;
FData : TObject; FTask: TJobProc;
FTask : TJobProc; FOwnData: Boolean;
FOwnData : Boolean; public
public constructor Create(aEvent: TJobProc; Data: TObject; OwnData: Boolean;
constructor Create(aEvent : TJobProc;Data : TObject;OwnData : Boolean;JobName : String='');virtual; JobName: String = ''); virtual;
procedure ExecuteTask(aTask : integer;FromWaiting : boolean);override; destructor Destroy; override;
destructor Destroy;override; procedure ExecuteTask(aTask: integer; FromWaiting: boolean); override;
end; end;
implementation implementation
@ -60,69 +59,70 @@ implementation
{ TEventJob } { TEventJob }
constructor TEventJob.Create(aEvent: TJobProc; Data: TObject; constructor TEventJob.Create(aEvent: TJobProc; Data: TObject;
OwnData: Boolean;JobName : String=''); OwnData: Boolean; JobName: String='');
begin begin
Name:=JobName; Name := JobName;
FTask:=aEvent; FTask := aEvent;
if Assigned(Data) or OwnData then if Assigned(Data) or OwnData then
Begin begin
FData:=Data; FData := Data;
FOwnData:=OwnData; FOwnData := OwnData;
end end
else else
Begin begin
FOwnData:=false; FOwnData := false;
FData:=self; FData := self;
end; end;
end; end;
procedure TEventJob.ExecuteTask(aTask : integer;FromWaiting : boolean);
begin
if Assigned(FTask) then
FTask(FData,self);
end;
destructor TEventJob.Destroy; destructor TEventJob.Destroy;
begin begin
if FOwnData then if FOwnData then
if FData<>self then if FData <> self then
FData.Free; FData.Free;
inherited Destroy; inherited Destroy;
end; end;
procedure TEventJob.ExecuteTask(aTask: integer; FromWaiting: boolean);
begin
if Assigned(FTask) then
FTask(FData, self);
end;
{ TSimpleJob } { TSimpleJob }
function TSimpleJob.pGetTask: integer; function TSimpleJob.pGetTask: integer;
begin begin
if FRunning or Cancelled then if FRunning or Cancelled then
Begin begin
if not FRunning then if not FRunning then
Result := ALL_TASK_COMPLETED Result := ALL_TASK_COMPLETED
else else
Result:=NO_MORE_TASK Result := NO_MORE_TASK
end end
else else
if FEnded then if FEnded then
Result := ALL_TASK_COMPLETED Result := ALL_TASK_COMPLETED
else else
Result:=1; Result := 1;
end; end;
procedure TSimpleJob.pTaskStarted(aTask: integer); procedure TSimpleJob.pTaskStarted(aTask: integer);
begin begin
FEnded:=false; FEnded := false;
FRunning:=True; FRunning := True;
end; end;
procedure TSimpleJob.pTaskEnded(aTask: integer; aExcept: Exception); procedure TSimpleJob.pTaskEnded(aTask: integer; aExcept: Exception);
begin begin
FEnded:=True; FEnded := True;
FRunning:=False; FRunning := False;
end; end;
function TSimpleJob.Running: boolean; function TSimpleJob.Running: boolean;
begin begin
Result:=FRunning; Result := FRunning;
end; end;