ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »