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