2

フレームを使用して、親フォームの複数のオブジェクトをカバーしています。フレームには、進行状況バー、ラベル、およびボタンが含まれています。フレームをアクティブにすると、進行状況バーのみがレンダリングされます。ラベルとボタンは非表示のままです。フレームの表示時にコードで .enable + .visible を true に設定しても機能しません。IDE でオブジェクトを完全に表示できます。それらは実行時にのみ消えます。

このスレッドで、この動作を引き起こす可能性のある Delphi 7 のバグがあるようだと読みましたが、よくわかりません:

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

フレームのすべてのオブジェクトを Delphi にレンダリングさせるための回避策はありますか?

更新: フレームの dfm-code

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

さて、私はエラーを見つけました、そしてそれはかなり明白なものなので私はかなり恥ずかしいです:

ボタンをクリックすると、フレームはそのすべてのオブジェクトを含めてレンダリングされますが、クリックするとCPUを集中的に使用する関数も初期化されます。これは初期のコードだったので、まだスレッドを実装していなかったので、関数はGUIレンダリングをフリーズし、一部のオブジェクトが表示されないようにしました。関数をコメントアウトしたときに、これは「修正」されました。また、フレームのプログレスバーが表示されただけでなく、CPU使用率にもかかわらず更新を続けていたという事実にも驚かされました。

返信してくださった皆様、ありがとうございました。

于 2012-04-24T15:11:24.990 に答える
1

コンポーネントをパネルに配置してみてください。

于 2012-04-24T14:44:10.810 に答える