ВУЗ:
Составители:
Рубрика:
9
необходимые изменения в свойство Text поля редактирования, с
последующим вызовом этого метода с помощью процедуры Synchronize.
Предположим, этот метод называется GiveAnswer. В листинге 1 представлен
полный исходный код модуля ThrdU, который включает программную реализа-
цию процесса обновления упомянутой выше строки редактирования на главной
форме.
Листинг 1. Модуль ThrdU.PAS
unit ThrdU;
interface
uses
Classes;
type
TTestThread = class(TThread)
private
Answer: integer;
protected
procedure GiveAnswer;
procedure Execute; override;
end;
implementation
uses SysUtils, Main;
{TTestThread}
procedure TTestThread.GiveAnswer;
begin
MainForm.Editl.Text := InttoStr(Answer);
end;
procedure TTestThread.Execute;
var i: Integer;
begin
FreeOnTerminate := True;
for i := 1 to 2000000 do
begin
if Terminated then Break;
Inc(Answer, Round(Abs(Sin(Sqrt(i)))));
Synchronize(GiveAnswer);
end;
end;
end.
9
нео бх о димы е изменения в сво йство Text по ля редактиро вания, с
по следую щ им вы зо во м этого методаспо мо щ ью про ц едуры Synchronize.
П редпо ло ж им, этотметод назы вается GiveAnswer. В листинге 1 представлен
по лны й исх о дны й ко д мо дуля ThrdU, ко торы й вклю чаетпро граммную реализа-
цию про цессао бно вления упо мянутой вы ш е стро ки редактиро вания наглавно й
фо рме.
Ли с т и н г 1. М одуль ThrdU.PAS
unit ThrdU;
interface
uses
Classes;
type
TTestThread = class(TThread)
private
Answer: integer;
protected
procedure GiveAnswer;
procedure Execute; override;
end;
implementation
uses SysUtils, Main;
{TTestThread}
procedure TTestThread.GiveAnswer;
begin
MainForm.Editl.Text := InttoStr(Answer);
end;
procedure TTestThread.Execute;
var i: Integer;
begin
FreeOnTerminate := True;
for i := 1 to 2000000 do
begin
if Terminated then Break;
Inc(Answer, Round(Abs(Sin(Sqrt(i)))));
Synchronize(GiveAnswer);
end;
end;
end.
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »
