07.02.2010, 22:08
|
|
Активный
|
|
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
|
|
Если на сайте mapper720.ru было непонятно:
В поток:
Код:
unit Unit2;
interface
uses
Classes, Unit1;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TThread }
procedure TMyThread.Execute;
begin
{ Place thread code here }
end;
end.
добавляещь процедуру:
Код:
unit Unit2;
interface
uses
Classes, Unit1, Dialogs;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure OLOLOProc;
end;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TThread }
procedure TMyThread.Execute;
begin
{ Place thread code here }
end;
end.
Жмешь CTRL+SHIFT+C
Дельфи генерирует :
Код:
unit Unit2;
interface
uses
Classes, Unit1, Dialogs;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure OLOLOProc;
end;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TThread }
procedure TMyThread.Execute;
begin
end;
procedure TMyThread.OLOLOProc;
begin
end;
end.
В процедуру OLOLOProc пишешь что нужно.
В процедуру Execute пишешь:
Код:
unit Unit2;
interface
uses
Classes, Unit1, Dialogs;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure OLOLOProc;
end;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TThread }
procedure TMyThread.Execute;
begin
Synchronize(OLOLOProc);
end;
procedure TMyThread.OLOLOProc;
begin
ShowMessage('OLOLO!');
end;
end.
И в нужном месте запускаешь:
Код:
uses ...., Unit2;
...
var My : TMyThread;
...
My := TMyThread.Create(false);
И все работает!
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
|