Kod: Tümünü seç
unit create_thread;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TFrmCreateThread = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmCreateThread: TFrmCreateThread;
hThr1, hThr2: THandle;
implementation
{$R *.DFM}
procedure Thread1;
var
i: Integer;
begin
for i := 1 to 100 do
begin
FrmCreateThread.Label1.Caption := IntToStr(i);
sleep(50);
end;
end;
procedure Thread2;
var
i: Integer;
begin
for i := 1 to 100 do
begin
FrmCreateThread.Label2.Caption := IntToStr(i);
sleep(50);
end;
end;
procedure TFrmCreateThread.Button1Click(Sender: TObject);
begin
Createthread(nil, 0, @Thread1, nil, 0, hThr1);
end;
procedure TFrmCreateThread.Button2Click(Sender: TObject);
begin
Createthread(nil, 0, @Thread2, nil, 0, hThr2);
end;
procedure TFrmCreateThread.FormCreate(Sender: TObject);
begin
terminateThread(hThr1, 9999);
terminateThread(hThr2, 9999);
end;
end.
butonlardan birine basıp ardından digerine basarsanız
iki dongu birbirinden bagımsız saymaya baslar
normalde butonların olaylarını kullanınca
birinciye bastıktan sonra ikinciye basıldıgı anda birinci askıya alınıp
ikinci saymaya baslıyor bitince birinciye geri donuyor
herneyse bu yapıyı ben de anet te bir elemanın tavsiyesi ile kullandım
gercekten basitligiyle kullanımı cok kolay geldi
tabi buna alternatif kendi thread nesnenizi de oturup yazabilirsiniz
daha detaylı bilgi icin
http://www.pergolesi.demon.co.uk/prog/threads/ToC.html