我们有一个由几个框架构成的GUI,其内容是动态生成的。每个框架创建面板、标签、编辑框、下拉框等作为输入字段。这个功能非常好用,我们计划让每个框架在单独的线程中构建其内容,但有一个大问题:速度比较慢!创建控件不需要时间,但设置Parent属性却非常耗时。我尝试了多种方法来加快进程,但没有任何帮助。我尝试了Enabled=False、Visible=False、DisableAlign、LockWindowUpdate、WM_SETREDRAW等方法,但似乎都无法影响控件Parent属性的耗时过程。即使使用线程,由于VCL函数必须在同步中调用,也会花费一些时间。是否有其他方法可以加快控件的创建和显示速度呢?顺祝商祺,Magnus。
编辑:GUI中没有数据组件或任何触发事件。我只是创建并显示控件。通过定时器,我确定控件父级(AControl.Parent := AOwner)分配是耗时的部分。
编辑2:正如下面的答案所示,速度问题不在于设置父级,而在于控件的绘制。当我测试时,容器是可见的,并且设置父级会立即绘制控件。
编辑3:我们动态GUI的另一个耗时部分是将项目分配给下拉框。ComboBox.Items.Assign(DataItems),其中DataItems最多只有三到六个项目。
谢谢大家抽出时间来帮助我!
编辑:GUI中没有数据组件或任何触发事件。我只是创建并显示控件。通过定时器,我确定控件父级(AControl.Parent := AOwner)分配是耗时的部分。
编辑2:正如下面的答案所示,速度问题不在于设置父级,而在于控件的绘制。当我测试时,容器是可见的,并且设置父级会立即绘制控件。
编辑3:我们动态GUI的另一个耗时部分是将项目分配给下拉框。ComboBox.Items.Assign(DataItems),其中DataItems最多只有三到六个项目。
谢谢大家抽出时间来帮助我!