Приложение 1
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; HEvent: THandle;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin HEvent := CreateEvent(nil,True,False,'UniqueNameEvent'); if HEvent=0 then begin ShowMessage(SysErrorMessage(GetLastError)); Application.Terminate; end; WaitForSingleObject(HEvent,INFINITE); end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if HEvent<>0 then CloseHandle(HEvent); end;
end.
|
Приложение 2:
На форме 1:
| Код | procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end;
|
На форме 2:
| Код | unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type TForm2 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private declarations } public { Public declarations } end;
var Form2: TForm2; HEvent: THandle;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject); begin HEvent := CreateEvent(nil,True,False,'UniqueNameEvent'); if HEvent=0 then begin ShowMessage(SysErrorMessage(GetLastError)); CLose; end; end;
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if HEvent<>0 then begin SetEvent(HEvent); CloseHandle(HEvent); end; end;
end.
|
|