【发布时间】:2011-03-13 14:46:33
【问题描述】:
下午好 :-), 我有一个框架。这个Frame是我用Main Form动态创建的。
主要形式:
Interface := TInterface.Create(self);
with handlingInterface do begin
Parent := Form1;
Left := 0; Top := 35;
Width := 570; Height := 250;
end;
在框架中我有一个线程。我从 Frame 调用这个线程。为什么我可以将 Thread 与 Frame 同步?没有:
var
Form1: TForm1;
我在 Frame 中调用 Thread,并且我想更改 ProgressBar 在 Frame 中的位置。我不知道,为什么我可以在 Thread 的 Synchronize 方法中访问 ProgressBar。
如果是 Form 中的 Thread 和 ProgressBar - 同步访问是 Form1.ProgressBar ...
但我在 Frame 中有 Thread 和 ProgressBar。
【问题讨论】:
-
@Nanik:在这种情况下我的同步是什么意思?究竟什么需要同步?如果您使用 TThread 的相应成员函数,您将已经得到您想要的,因为这有效地在主线程中运行相应的代码,而不是 TThread 派生的实例。
-
感谢评论,我编辑帖子。
-
Unit1.Form1.ProgressBar,把'Unit1'放在线程单元的实现部分的uses子句中。或者,这是一个长镜头? -
谢谢 :-),但是 ProgressBar 在 Frame 上,这是个问题。
-
您可以在创建线程时将框架的引用提供给线程,并在需要更新进度条时使用它。
标签: multithreading delphi forms frame