ВУЗ:
Составители:
Рубрика:
9
показано на листинге. В форме определите метод OutMessage. Внешний вид рабо-
тающего приложения показан на рисунке.
unit ThrdUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type // Объявление класса потока-потомка
TSimpleThread = class(TThread)
procedure Execute; override;
public
// Здесь удобно добавить любые поля и методы,
//которые будут использоваться локально, внутри потока
Count: Integer; // счетчик цикла
procedure OutMessage;
end;
procedure TSimpleThread.Execute;
begin
// Содержание потока
while not Terminated do begin//Поток будет выполняться,
// пока не будет нажата кнопка Button2
Count := Count+1;
Synchronize(OutMessage); // Безопасный вывод
end;
end;
procedure TSimpleThread.OutMessage;
begin
Form1.Edit1.Text:=IntToStr(count); // Обращение к VCL
end;
var Thread1: TSimpleThread; // Экземпляр класса «поток»
procedure TForm1.Button1Click(Sender: TObject);
п оказано налистинг е. В ф ормеоп ределитеметод OutMessage. В неш ний видраб о-
таю щ ег о п рилож ения п оказан нарисунке.
unit ThrdUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type // Объявление класса потока-потомка
TSimpleThread = class(TThread)
procedure Execute; override;
public // Здесь удобно добавить любые поля и методы,
//которые будут использоваться локально, внутри потока
Count: Integer; // счетчик цикла
procedure OutMessage;
end;
procedure TSimpleThread.Execute;
begin
// Содержание потока
while not Terminated do begin//Поток будет выполняться,
// пока не будет нажата кнопка Button2
Count := Count+1;
Synchronize(OutMessage); // Безопасный вывод
end;
end;
procedure TSimpleThread.OutMessage;
begin
Form1.Edit1.Text:=IntToStr(count); // Обращение к VCL
end;
var Thread1: TSimpleThread; // Экземпляр класса «поток»
procedure TForm1.Button1Click(Sender: TObject);
9
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »
