THidepanel の開発は、まだ多くの疑問を私に投げかけています。こちらの指示に従いましたその他のヘルプと質問
内側のパネルを赤色にして、外側のパネルよりも少し小さくするように設計しました。コンポーネントをテスト アプリケーションで実行すると、外側のパネルのみが描画され、内側の作業パネルに配置され、設計時に表示されるすべてのコンポーネントが表示されなくなります。
私はバグを次のように想定しています: outedr パネルは最後のアクションとして描画されるため、実行時に赤い内部パネルとここに配置されたコンポーネントが表示されませんか? これは本当ですか、私の仮定はどこが間違っていますか、この問題を解決するにはどうすればよいですか
私のコンポーネントの最新の Create 関数はここにあります:
constructor THidePanel.create(aOwner: TComponent);
begin
inherited;
padding.Left:= BorderSize;
padding.top:= BorderSize;
padding.right:= BorderSize;
padding.Bottom:= BorderSize;
// the inner panel
WorkingPanel := TPanel.create(self);
WorkingPanel.Caption := ' ';
WorkingPanel.BevelOuter := bvNone;
// WorkingPanel.BringToFront;
WorkingPanel.Color :=220;
WorkingPanel.ParentColor := false;
WorkingPanel.Parent := self;
WorkingPanel.Align := alClient;
// the button to mimimize / maximize
FActivateButton := TButton.create(self);
FActivateButton.Parent := self;
FActivateButton.Caption := '<';
FActivateButton.OnClick := H_ActivateButtonClick;
FActivateButton.Width := BorderSize;
FActivateButton.Height := BorderSize;
/// the restore values , correct setting
FLargeWidth := self.Width;
FLargeHeight := self.Height;
FHasCustomSize := false;
// here I draw the activate button on the outer panel
SetButtonPosition(topright);
// drop components only on the inner panel
ControlStyle := ControlStyle - [csAcceptsControls]
end;