![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
||||
|
||||
|
у меня есть) Form1.memo1.Lines.add('lllll'); Form1.Label1.capton:='hjgj'; вот так из потока работаю с ними мб из за этого они пропадают, и через некоторое короткое время вобще вся прога подвисла.
|
|
#17
|
||||
|
||||
|
вообще-то чтобы из потока с VCL компонентами работать нужно Synchronize использовать
|
|
#18
|
||||
|
||||
|
а как собственно использовать его?
так? Synchronize(Form1.Label1.capton:='hjgj'); |
|
#19
|
||||
|
||||
|
Код:
type
TMyThread = class(TThread)
private
iParam: Integer;
sParam: String;
procedure JurassicPark;
protected
procedure Execute; override;
public
constructor Create(iParam: Integer; sParam: String);
end;
constructor TMyThread.Create(iParam: Integer; sParam: String);
begin
inherited Create(True);
Self.iParam:=iParam;
Self.sParam:=sParam;
Resume;
end;
procedure TMyThread.Execute;
begin
// ...
Synchronize(JurassicPark);
// ...
end;
procedure TMyThread.JurassicPark;
begin
Form1.Tag:=iParam;
Form1.Caption:=sParam;
end; |
|
#20
|
||||
|
||||
|
Код:
procedure TMyThread.JurassicPark; begin Form1.Tag:=iParam; Form1.Caption:=sParam; end; Код:
private
iParam: Integer;
sParam: String;Код:
Self.iParam:=iParam; Self.sParam:=sParam; |
|
#21
|
||||
|
||||
|
да, эти переменные "в каждом потоке означают свое". инициализируются они в конструкторе, его параметрами.
|
|
#22
|
||||
|
||||
|
Код:
procedure TMyThread.JurassicPark; begin Form1.Tag:=iParam; Form1.Caption:=sParam; end; |