Показать сообщение отдельно
  #2  
Старый 03.11.2010, 19:02
bistriy bistriy вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 31
Репутация: 0
По умолчанию Сам разобрался.

--------------------------------------------------------------------------
Вот я сам уже разобрался как работают потоки.
И для новичков привожу код в котором есть и создание потока и выполнение функции в потоке и завершение потока по нажатию кнопки 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 сюда.
Ответить с цитированием