1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- { %OPT=-gh }
- program tw28271;
- {$mode delphi}{$H+}
- uses
- {$IFDEF UNIX}
- cthreads,
- {$ENDIF}
- Classes
- { you can add units after this };
- type
- TMyMsgDlg=class
- private
- class procedure SyncFree;
- class procedure SyncCreate;
- public
- class procedure StaticCreate;
- class procedure StaticFree;
- end;
- var
- Dlg:TMyMsgDlg;
- class procedure TMyMsgDlg.SyncCreate;
- begin
- Dlg:=TMyMsgDlg.Create;
- end;
- class procedure TmyMsgDlg.SyncFree;
- begin
- if Assigned(Dlg) then
- Dlg.free;
- Dlg:=nil;
- end;
- class procedure TMyMsgDlg.StaticCreate;
- begin
- if IsLibrary then
- SyncCreate
- else
- TThread.Synchronize(nil,SyncCreate);
- end;
- class procedure TMyMsgDlg.StaticFree;
- begin
- if IsLibrary then
- SyncFree
- else
- begin
- TThread.Synchronize(nil,SyncFree)
- end;
- end;
- begin
- HaltOnNotReleased := True;
- //writeln('Create');
- TMyMsgDlg.StaticCreate;
- //writeln('Free');
- TMyMsgDlg.StaticFree;
- //writeln('Done');
- end.
|