Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];

Вниз

Thread - To ALL HELP!!   Найти похожие ветки 

 
Eraser   (2002-01-21 13:00) [0]

Пишу следующий код:
var c:integer;

procedure TMicro3Thread.UpdateCaption;
begin
Form1.Caption := inttostr(c);
end;

procedure TMicro3Thread.Execute;
begin
Rab;
end;

procedure Rab;
begin
for i:=1 to 10000 do begin
inc(с);
Synchronize(UpdateCaption);
end;
end;

в Caption выводится только 1-е значение с и все хотя цикл продолжается


 
Vovochka   (2002-01-21 13:07) [1]

Form.refresh()?


 
Dimka Maslov   (2002-01-21 13:11) [2]

Rab доложна быть методом класса TMicro3Thread


 
yaJohn   (2002-01-21 13:17) [3]

Ispolzovanie Thread v dannom sluchae pochti ekvivalentno prosto gluhomu ciklu v programme. Pochemu? Ob etom uje neodnokratno pisali. Podumayte, chto delaet procedura Synchronize.
Chto doljno poluchitsia v itoge?


 
Eraser   (2002-01-21 14:12) [4]

>Maslov
Rab описана в ТMicro1Thread
>yaJohn
Synchronize я использую потому что в каждом TthreadObject Написано:
{ Important: Methods and properties of objects in VCL can only be used in a
method called using Synchronize, for example,

Synchronize(UpdateCaption);

and UpdateCaption could look like,

procedure TMicro3Thread.UpdateCaption;
begin
Form1.Caption := "Updated in a thread";
end; }

>Vovochka
что-то не получается где ее надо написать


 
Eraser   (2002-01-21 15:52) [5]

ответьте что-нибудь полезное


 
panov   (2002-01-21 16:06) [6]

TT = class(TThread)
c: Integer;
protected
procedure Execute;override;
public
procedure DoUpdate;

end;

implementation
uses
ufMainFormCBFiscal;

procedure TT.DoUpdate;
begin
fMainFormCBFiscal.Label1.Caption := IntToStr(c);
end;

procedure TT.Execute;
var
cc: Integer;
begin
for cc := 0 to 10000 do
begin
c := cc;
Synchronize(DoUpdate);
end;
end;


 
Rem   (2002-01-21 16:17) [7]

У меня это работает, да и не может не работать.

type
TMicroThread = class(TThread)
protected
procedure UpdateCaption;
procedure Execute; override;
procedure Rab;
end;

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

var c: integer;

procedure TMicroThread.UpdateCaption;
begin
Form1.Caption := inttostr(c);
end;

procedure TMicroThread.Execute;
begin
Rab;
end;

procedure TMicroThread.Rab;
var
i: integer;
begin
for i:=1 to 10000 do
begin
inc(c);
Synchronize(UpdateCaption);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TMicroThread.Create(false);
end;

end.


 
Eraser   (2002-01-22 13:18) [8]

поток описан отдельным модулем ThreadObject и Synchronize(UpdateCaption) отрабатывает каждый раз но caption меняется только при первом проходе цикла ??


 
panov   (2002-01-22 13:36) [9]

Возможно, у тебя в процедуре rab еще используются объекты основного потока. Приведи ее код.


 
Eraser   (2002-01-22 16:06) [10]

он занимает 3 страницы. ну а так у меня в программе 2 Synchronize:
Synchronize(UpdateCaption) и Synchronize(UpdateCaption1) для разных объектов основной формы



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
1-18868
SemFLY
2002-01-23 03:32
2002.02.07
Подскажите, где Delphi 6 скачать ?


1-18827
Philip
2002-01-25 00:50
2002.02.07
Не работает Debugger в делфи


1-18864
VID
2002-01-22 11:43
2002.02.07
Передача и ПОЛУЧЕНИЕ команд от одной проги к другой.


6-18944
volodya
2001-11-14 16:33
2002.02.07
Как получить доступ по локальной сети к реестру и редактировать его


4-19030
Hair_Fly
2001-12-11 17:55
2002.02.07
Как мне запустить из своего сервиса некоторое приложение ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский