--------------------------------------------------------------------------
Вот я сам уже разобрался как работают потоки.
И для новичков привожу код в котором есть и создание потока и выполнение функции в потоке и завершение потока по нажатию кнопки Button1 с выводом сообщения о завершении работы потока.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TNewThread = class(TThread)
private
Progress: integer;
procedure SetProgress;
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
NajaliButton1:Boolean;
i:Boolean;
implementation
{$R *.dfm}
procedure TNewThread.Execute;
var
OnTerminated:Boolean;
begin
While OnTerminated do
begin
sleep(50);
Synchronize(SetProgress);
If i=true then
begin
OnTerminated:=false;
end;
end;
end;
procedure TNewThread.SetProgress;
begin
i:=NajaliButton1;
If i=true then
begin
ShowMessage('Вы закрыли поток.');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
NewThread:TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
NajaliButton1:=true;
end;
end.
Может кто нибудь подскажет что за странная белибирда вместо букв после копирования русских букв из delphi сюда.