Zum einen wird ja diese Leiste mit dem Buttons ein- und ausgeblendet, je nachdem ob das Dingen da frei herumfliegt (Float) oder angedockt ist (Docked).
das würde z.B. so gehen
Delphi-Quellcode:
unit DockPanel;
interface
uses
System.Types,
{ TRect }
Vcl.Controls,
Vcl.ExtCtrls;
type
TDockPanel =
class( TPanel )
private
FHead: TPanel;
protected
procedure DoDock( NewDockSite: TWinControl;
var ARect: TRect );
override;
public
procedure AfterConstruction;
override;
end;
implementation
{ TDockPanel }
procedure TDockPanel.AfterConstruction;
begin
inherited;
// Ein ganz billiges Head-Dingen zum zeigen
FHead := TPanel.Create( Self );
FHead.Align := alTop;
FHead.Height := 10;
FHead.Caption := '
Head';
FHead.Parent := Self;
FHead.Visible := True;
end;
procedure TDockPanel.DoDock( NewDockSite: TWinControl;
var ARect: TRect );
begin
inherited;
// Je nchdem, wo wir gedockt sind, ein- oder ausblenden
FHead.Visible :=
not( NewDockSite
is FloatingDockSiteClass );
end;
end.
Jetzt fehlt also nur noch das Ein- und Ausblenden im angedockten Zustand, wo also das DockPanel mit der DockSite sprechen muss
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)