Hallo,
um eine Form an die andere Anzudocken, könntest Du folgendes machen:
Delphi-Quellcode:
UNIT Unit1;
INTERFACE
USES
...
unit2;
// <----- 2. Form einbinden!
TYPE
TForm1 =
CLASS(TForm)
Button4: TButton;
PROCEDURE Button4Click(Sender: TObject);
PRIVATE
// Dockingmanager
PROCEDURE WMMove(
VAR Message: TWMMove);
MESSAGE WM_MOVE;
PROCEDURE AlignForm;
PUBLIC
{ Public declarations }
END;
VAR
Form1 : TForm1;
DebugM : TForm2;
IMPLEMENTATION
{$R *.dfm}
PROCEDURE TForm1.WMMove(
VAR Message: TWMMove);
BEGIN
INHERITED;
TRY
// Prüfen ob Form2 vorhanden ist
IF Assigned(DebugM)
THEN
BEGIN
AlignForm;
END;
EXCEPT
END;
END;
PROCEDURE TForm1.AlignForm;
BEGIN
// Form2 an Form1 ausrichten (rechte obere Ecke)
DebugM.Left := Self.Left + Self.Width;
DebugM.Top := Self.Top;
END;
PROCEDURE TForm1.Button4Click(Sender: TObject);
// Form2 erst zur Laufzeit erzeugen!
BEGIN
IF NOT Assigned(DebugM)
THEN
BEGIN
// Self benötigt kein Destroy!
DebugM := TForm2.Create(Self);
TRY
DebugM.Show;
EXCEPT
DebugM.Free;
END;
END;
END;
END.
Damit klebt die Form2 immer an der Form1 wenn Du Form1 bewegst, nur,
wenn es mit beiden Forms unabhängig Funken sollte, dafür habe ich auch
keine Lösung.