2

に基づくカスタム コントロールがありTPanel、コンポーネントの作業領域を定義する内部パネルと、(内部) パネルを非表示および表示する「最小化/復元」ボタンのある外部領域があります。

設計時にコンポーネントをコントロールにドロップし、そのAlignプロパティをalClientに設定すると、外側のパネルのサイズが使用され、最小化ボタンが表示されなくなります。

パネル上のコンポーネントを位置合わせまたはドロップして、内側のパネルの領域内に配置する (とどめる) にはどうすればよいですか?

子が属する内側フレームの領域を示すスクリーン ショット

4

1 に答える 1

3

ボタンを独自のパネルに配置すると、他のコントロールを受け入れず、前面に保持されますが、他のコントロールが覆われる可能性があるという欠点があります。

procedure THidePanel.AdjustClientRect(var Rect: TRect);
begin
  inherited;
  FPanel.BringToFront;
end;

constructor THidePanel.create(AOwner: TComponent);
begin
  inherited;
  FPanel := TPanel.Create(self);
  FPanel.Align := alright;
  FPanel.Parent := self;
  FPanel.BevelOuter := bvNone;
  FPanel.Width := 30;
  FButton:=TSpeedButton.Create(self);
  FButton.Parent := FPanel;
  FPanel.ControlStyle := FPanel.ControlStyle - [csAcceptsControls];
end;
于 2013-04-10T11:59:20.167 に答える