AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

2 Formulare gleichzeitig verschieben?

Ein Thema von gee21 · begonnen am 31. Aug 2019 · letzter Beitrag vom 31. Aug 2019
Antwort Antwort
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

2 Formulare gleichzeitig verschieben?

  Alt 31. Aug 2019, 08:39
Hallo alle zusammen

Ich habe ein Image auf der Mainform. im OnMouseDown event habe ich folgender Code damit der Benutzer das Fenster mit der Maus verschieben kann.

Delphi-Quellcode:
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
Weis jemand wie man nun zb Form2 gleichzeitigt mitverschieben kann? (Also Benutzer verschiebt per MouseDown die Mainform.... und die Form2 soll sich pararell dazu mitbewegen ?

Kann man evt das mousedown der Form2 mitauslösen lassen?

Es geht darum das die beiden Fenster "optisch / visuell" zusammenhängen und auch immer zusammenhängen müssen)
Robert
  Mit Zitat antworten Zitat
Heuman
(Gast)

n/a Beiträge
 
#2

AW: 2 Formulare gleichzeitig verschieben?

  Alt 31. Aug 2019, 09:46
Hallo,

eine einfache Möglichkeit wäre vielleicht

form2.left
bzw. form2.top

im Mainform.mousedown entsprechend zu ändern.

Gruß
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: 2 Formulare gleichzeitig verschieben?

  Alt 31. Aug 2019, 09:58
Hallo,

eine einfache Möglichkeit wäre vielleicht

form2.left
bzw. form2.top

im Mainform.mousedown entsprechend zu ändern.

Gruß
Ja das habe ich schon probiert. das Problem dabei ist das sich dann Form2 erst verschiebt wenn man den Mousbutton los lässt. (also während dem verschieben der mainform trennt sich form2 kurz ab)
(Auch wenn ich es mit onMouseMove versuche)
Robert

Geändert von gee21 (31. Aug 2019 um 10:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#4

AW: 2 Formulare gleichzeitig verschieben?

  Alt 31. Aug 2019, 10:39
Du kannst in dem MainForm folgenden Messagehandler implementieren:
Delphi-Quellcode:
    procedure WMMoving(var Message: TWMMoving); message WM_MOVING;

procedure TMainForm.WMMoving(var Message: TWMMoving);
begin
  Form2.Left := Message.DragRect.Left + FOffset.X;
  Form2.Top := Message.DragRect.Top + FOffset.Y;
end;
Falls der Offset nicht statisch ist, kannst du ihn auch im FormActivate (und in deinem Fall auch im FormMouseDown) ermitteln:
Delphi-Quellcode:
procedure TMainForm.FormActivate(Sender: TObject);
begin
  FOffset := TPoint.Create(Form2.Left - Left, Form2.Top - Top);
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: 2 Formulare gleichzeitig verschieben?

  Alt 31. Aug 2019, 11:00
Du kannst in dem MainForm folgenden Messagehandler implementieren:
Delphi-Quellcode:
    procedure WMMoving(var Message: TWMMoving); message WM_MOVING;

procedure TMainForm.WMMoving(var Message: TWMMoving);
begin
  Form2.Left := Message.DragRect.Left + FOffset.X;
  Form2.Top := Message.DragRect.Top + FOffset.Y;
end;
Falls der Offset nicht statisch ist, kannst du ihn auch im FormActivate (und in deinem Fall auch im FormMouseDown) ermitteln:
Delphi-Quellcode:
procedure TMainForm.FormActivate(Sender: TObject);
begin
  FOffset := TPoint.Create(Form2.Left - Left, Form2.Top - Top);
end;
Danke dir vielmals. Funktioniert wunderbar.
Robert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 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