| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- unit ufrmMain;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, uAppPluginContext, FileLogger;
- type
- TfrmMain = class(TForm)
- procedure btnSingletonFormClick(Sender: TObject);
- procedure btnStartClick(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- procedure workerTester();
- end;
- var
- frmMain: TfrmMain;
- implementation
- uses
- uIUIForm, uIShow;
- {$R *.dfm}
- function ThreadFunc(p: Pointer): Integer;
- begin
- TfrmMain(p).workerTester;
- end;
- procedure TfrmMain.btnSingletonFormClick(Sender: TObject);
- begin
- with appPluginContext.getBean('singletonDEMO') as IShowForm do
- begin
- ShowForm;
- end;
- end;
- procedure TfrmMain.btnStartClick(Sender: TObject);
- var
- i, iCount: Integer;
- tid: Cardinal;
- begin
- iCount := StrToInt(edtThreadCounter.Text);
- for i:=1 to iCount do
- begin
- BeginThread(nil,0,ThreadFunc,Self,0,tid);
- end;
- end;
- procedure TfrmMain.Button1Click(Sender: TObject);
- begin
- with appPluginContext.getBean('tester') as IUIForm do
- try
- showAsModal;
- finally
- UIFormFree;
- end;
- end;
- procedure TfrmMain.workerTester;
- var
- i: Integer;
- begin
- try
- for i := 1 to 10 do
- begin
- with appPluginContext.getBean('tester') as IUIForm do
- try
- finally
- UIFormFree;
- end;
- end;
- except
- on E:Exception do
- begin
- TFileLogger.instance.logErrMessage(E.Message);
- end;
- end;
- end;
- end.
|