2

我正在使用框架来覆盖父表单上的多个对象。该框架包含一个进度条、一个标签和一个按钮。当我激活框架时,只呈现进度条。标签和按钮保持不可见。在显示框架时在代码中将 .enable + .visible 设置为 true 也不起作用。我可以在 IDE 中完美地看到这些对象。它们仅在运行时消失。

我在此线程上读到 Delphi 7 中似乎存在可能导致此行为的错误,但我不确定:

http://www.delphigroups.info/2/7/734850.html

有没有办法让 Delphi 渲染所有框架的对象?

更新:框架的 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
4

2 回答 2

1

尝试将您的组件放入面板中。

于 2012-04-24T14:44:10.810 回答
1

好吧,我发现了错误,我很惭愧,因为它是一个相当明显的错误:

单击按钮后,将渲染帧,包括其所有对象,但是,单击也会初始化 CPU 密集型函数。由于这是早期的代码,我还没有实现线程,所以该函数冻结了 gui 渲染,从而阻止了一些对象的出现。当我注释掉该功能时,这已“修复”。我也被这样一个事实吓坏了,框架上的进度条不仅出现了,而且尽管 CPU 使用率很高,但它还在不断更新。

再次感谢所有回复的人。

于 2012-04-24T15:11:24.990 回答