Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eine Form an eine andere Form andocken? (https://www.delphipraxis.net/9220-eine-form-eine-andere-form-andocken.html)

Gregor 20. Sep 2003 19:54


Eine Form an eine andere Form andocken?
 
Hallo,

ich habe 2 Form. Jetzt soll die eine beim öffnen links an das schon offene andocken und die andere beim öffnen rechts ran!

Wie mache ich das?

P.S: Ja ich habe gesucgt und nein es kamm ncihts schlaues raus!

Gregor

Gregor 20. Sep 2003 21:40

Re: Eine Form an eine andere Form andocken?
 
Kann es sein das es einfach nicht möglich ist, denn auch googeln brachte keinen erfolg :(

Niko 20. Sep 2003 21:52

Re: Eine Form an eine andere Form andocken?
 
Zitat:

Zitat von Delphi-Hilfe
Mit ManualDock wird das Steuerelement angedockt.

ManualDock entfernt das Steuerelement von dessen aktueller Position und dockt es an der neuen Position an.


APP 22. Sep 2003 07:15

Re: Eine Form an eine andere Form andocken?
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz