11.02.2017, 08:08
|
|
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
На форме 2 Button и Memo:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TWaitThread = class(TThread)
private
FMsg: String;
procedure Updt;
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HEvent: THandle;
implementation
{$R *.dfm}
{ TWaitThread }
procedure TWaitThread.Updt;
begin
Form1.Memo1.Lines.Add(FMsg);
end;
procedure TWaitThread.Execute;
begin
FMsg:='Execute start';
Synchronize(Updt);
FMsg:='WaitForSingleObject';
Synchronize(Updt);
case WaitForSingleObject(HEvent, 5000) of (* INFINITE *)
WAIT_OBJECT_0: begin
FMsg:='WAIT_OBJECT_0';
Synchronize(Updt);
end;
WAIT_TIMEOUT: begin
FMsg:='WAIT_TIMEOUT';
Synchronize(Updt);
end;
end;
FMsg:='Execute stop'+sLineBreak;
Synchronize(Updt);
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
with TWaitThread.Create(True) do
begin
FreeOnTerminate:=True;
Resume;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SetEvent(HEvent);
end;
initialization
HEvent:=CreateEvent(nil, False, False, nil);
finalization
CloseHandle(HEvent);
end.
__________________
Пишу программы за еду.
__________________
|