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)"/>
</SearchPaths>
<Linking>
<Debugging>
<UseHeaptrc Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>

View File

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

File diff suppressed because it is too large Load Diff

View File

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