我有一个关于在MainThread TThread上单独创建MainThread TButtonTPanel的问题。 TPanel必须设置为TButton的Parent。

ButtonVariableName := TButton.Create (
    (Form1.FindComponent('PanelNameString') as TComponent)
   );

ButtonVariableName.Parent := (
    (Form1.FindComponent('PanelNameString') as TWinControl)
  );

不管用...
ButtonVariableName在MainThread上。
在单独的TThread上调用TButton.Create()ButtonVariableName.Parent也可以从单独的TThread中调用。
FindComponent似乎正在崩溃。当我将其删除并放置其他东西时,它会起作用。从单独的FindComponent调用时,可能是TThread不起作用,但我不确定。

有指针^吗?
哈哈。

-i2编程器

最佳答案

您不能从辅助线程使用VCL。在辅助线程中使用Synchronize或Queue在主线程的上下文中执行与VCL相关的代码。

10-05 21:19