|
@@ -215,18 +215,16 @@ type
|
|
|
Procedure RemoveForm(aForm : TFresnelCustomForm);
|
|
|
Property MainForm : TFresnelCustomForm Read FMainForm Write SetMainForm;
|
|
|
end;
|
|
|
-
|
|
|
+ TFresnelFormManagerClass = Class of TFresnelFormManager;
|
|
|
|
|
|
TFresnelBaseApplication = class(TCustomApplication)
|
|
|
private
|
|
|
FAsyncCall: TAsyncCallQueues;
|
|
|
FEventDispatcher : TFresnelEventDispatcher;
|
|
|
- FFormManager: TFresnelFormManager;
|
|
|
procedure DoFresnelLog(aType: TEventType; const Msg: UTF8String);
|
|
|
function GetHookFresnelLog: Boolean;
|
|
|
procedure SetHookFresnelLog(AValue: Boolean);
|
|
|
protected
|
|
|
- function CreateFormManager(aOwner : TComponent) : TFresnelFormManager; virtual;
|
|
|
function CreateEventDispatcher(aDefaultSender : TObject) : TFresnelEventDispatcher; virtual;
|
|
|
procedure DoHandleAsyncCalls; virtual;
|
|
|
class procedure RegisterApplicationEvents; virtual;
|
|
@@ -244,15 +242,35 @@ type
|
|
|
function AddEventListener(aID : TEventID; aHandler : TFresnelEventHandler) : Integer;
|
|
|
function AddEventListener(Const aName: TEventName; aHandler : TFresnelEventHandler): Integer;
|
|
|
property EventDispatcher : TFresnelEventDispatcher Read FEventDispatcher;
|
|
|
- Property FormManager : TFresnelFormManager Read FFormManager;
|
|
|
Property HookFresnelLog : Boolean Read GetHookFresnelLog Write SetHookFresnelLog;
|
|
|
end;
|
|
|
|
|
|
var
|
|
|
Application: TFresnelBaseApplication;
|
|
|
+ FormManagerClass : TFresnelFormManagerClass = Nil;
|
|
|
+
|
|
|
+Function FormManager : TFresnelFormManager;
|
|
|
|
|
|
implementation
|
|
|
|
|
|
+var
|
|
|
+ _FormManager : TFresnelFormManager;
|
|
|
+
|
|
|
+Function FormManager : TFresnelFormManager;
|
|
|
+var
|
|
|
+ aclass : TFresnelFormManagerClass;
|
|
|
+
|
|
|
+begin
|
|
|
+ if _FormManager = Nil then
|
|
|
+ begin
|
|
|
+ aClass:=FormManagerClass;
|
|
|
+ if aClass=Nil then
|
|
|
+ aClass:=TFresnelFormManager;
|
|
|
+ _FormManager:=aClass.Create(Nil);
|
|
|
+ end;
|
|
|
+ Result:=_FormManager;
|
|
|
+end;
|
|
|
+
|
|
|
{ TFresnelCustomForm }
|
|
|
|
|
|
procedure TFresnelCustomForm.SetFormStyle(AValue: TFormStyle);
|
|
@@ -476,12 +494,12 @@ begin
|
|
|
FVisible:=true;
|
|
|
Layouter:=TViewportLayouter.Create(nil);
|
|
|
TViewportLayouter(Layouter).Viewport:=Self;
|
|
|
- Application.FormManager.AddForm(Self);
|
|
|
+ FormManager.AddForm(Self);
|
|
|
end;
|
|
|
|
|
|
destructor TFresnelCustomForm.Destroy;
|
|
|
begin
|
|
|
- Application.FormManager.RemoveForm(Self);
|
|
|
+ FormManager.RemoveForm(Self);
|
|
|
Layouter.Free;
|
|
|
Layouter:=nil;
|
|
|
WSForm:=nil;
|
|
@@ -778,10 +796,6 @@ begin
|
|
|
Result:=(TFresnelComponent._LogHook=@DoFresnelLog);
|
|
|
end;
|
|
|
|
|
|
-function TFresnelBaseApplication.CreateFormManager(aOWner: TComponent): TFresnelFormManager;
|
|
|
-begin
|
|
|
- Result:=TFresnelFormManager.Create(aOWner);
|
|
|
-end;
|
|
|
|
|
|
function TFresnelBaseApplication.CreateEventDispatcher(aDefaultSender: TObject): TFresnelEventDispatcher;
|
|
|
begin
|
|
@@ -815,9 +829,9 @@ end;
|
|
|
procedure TFresnelBaseApplication.ShowMainForm;
|
|
|
begin
|
|
|
FLLog(etDebug,'ShowMainForm');
|
|
|
- If FFormManager.MainForm=nil then
|
|
|
+ If FormManager.MainForm=nil then
|
|
|
raise Exception.Create('No main form available');
|
|
|
- FFormManager.MainForm.Show;
|
|
|
+ FormManager.MainForm.Show;
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -830,12 +844,10 @@ begin
|
|
|
FAsyncCall:=TAsyncCallQueues.Create;
|
|
|
FAsyncCall.WakeMainThreadOnCalls:=True;
|
|
|
FEventDispatcher:=CreateEventDispatcher(Self);
|
|
|
- FFormManager:=CreateFormManager(Self);
|
|
|
end;
|
|
|
|
|
|
destructor TFresnelBaseApplication.Destroy;
|
|
|
begin
|
|
|
- FreeAndNil(FFormManager);
|
|
|
FreeAndNil(FEventDispatcher);
|
|
|
FreeAndNil(FAsyncCall);
|
|
|
inherited Destroy;
|
|
@@ -886,5 +898,8 @@ end;
|
|
|
|
|
|
initialization
|
|
|
TFresnelBaseApplication.RegisterApplicationEvents;
|
|
|
+finalization
|
|
|
+ _FormManager.Free;
|
|
|
+
|
|
|
end.
|
|
|
|