我使用一个框架来覆盖父窗体上的几个对象。该框架包含一个进度条、一个标签和一个按钮。当我激活帧时,只有进度条被渲染。标签和按钮保持不可见。在显示框架时,在代码中将.enable + .visible设置为true也不起作用。我可以在IDE中很好地看到这些对象。它们只在运行时消失。
我在这个帖子上读到,Delphi 7中似乎有一个bug可能会导致这种行为,但我不确定:
http://www.delphigroups.info/2/7/734850.html
有没有办法让Delphi渲染所有frame的对象?
更新:帧的dfm-代码
object Frame2: TFrame2
Left = 0
Top = 0
Width = 528
Height = 116
TabOrder = 0
object Label1: TLabel
Left = 8
Top = 8
Width = 32
Height = 13
Caption = 'Label1'
end
object Button1: TButton
Left = 8
Top = 72
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
end
object ProgressBar1: TProgressBar
Left = 8
Top = 32
Width = 473
Height = 24
TabOrder = 1
end
end发布于 2012-04-24 23:11:25
好吧,我发现了这个错误,我感到非常羞愧,因为这是一个相当明显的错误:
在单击按钮时,帧正在渲染,包括它的所有对象,但是,单击也会初始化CPU密集型函数。因为这是早期的代码,我还没有实现线程,所以这个函数冻结了gui呈现,从而阻止了一些对象的出现。当我注释掉这个函数时,这个问题被“修复”了。我也被这样一个事实吓到了,框架上的进度条不仅出现了,而且尽管CPU使用率很高,但仍在不断更新。
再次感谢所有回复的人。
发布于 2012-04-24 22:44:11
尝试将您的组件放入面板中。
https://stackoverflow.com/questions/10293226
复制相似问题