![]() |
Fenster verschieben?
Hallo,
Unser Lehrer hat uns die Aufgabe gegeben, eine Fensterverschiebung per Maus zu realisieren. Leider habe ich von Delphi nicht viel Ahnung. Wir sollen die gesamte Berechnung der Fensterkoordinaten selber machen. Das Fenster soll mit der Maus verschoben werden können. Hat jemand eine Idee? |
Re: Fenster verschieben?
Hallo und Willkommen in der DP :dp:,
diese Aufgabenstellung ist aber mehr als schwammig, da Fenster sich ja normalerweise sowieso schon per Maus verschieben lassen. Bevor wir hier also mutmaßen und an der Aufgabe vorbei Vorschläge machen, solltest Du das noch einmal konkretisieren. |
Re: Fenster verschieben?
Hallo DeddyH,
Schwammig? Hmmm! Leider kann ich mich im Moment nicht besser ausdrücken. Klar lassen sich die Fenster normalerweise bereits per Maus verschieben, aber irgendwie müssen das die Programmierer von Windows doch gemacht haben. Irgendwo in den Tiefen von Windows muss doch da ein Algorhithmus stecken. Und den sollen wir nachprogrammieren. |
Re: Fenster verschieben?
Delphi-Quellcode:
Der Code würde das gewünscht bewirken aber berechnet wird da natrülich von dir nichts. Der Code stammt von DeddyH.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if ssLeft in Shift then begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND,$F012,0); end; end; Für den Algorithmus denn du machen willst hilft dir eventuell ClientToScreen. |
Re: Fenster verschieben?
- man klickt mit der Maus
- diese Position merkt man sich nun - wird die Maus verschoben, kann man sich die Differenz zu letzen Mausposition ausrechen - und das Fenster entsprechend verschieben - usw. [add] @Larsi: ich glaub nicht, daß das der Weg ist, den sich der/ein Lehrer wünscht :zwinker: |
Re: Fenster verschieben?
Also rate ich doch einmal: ihr sollt die Fenster so programmieren, dass sie sich auch in der Client-Area statt über die Titelleiste verschieben lassen, könnte das sein?
|
Re: Fenster verschieben?
|
Re: Fenster verschieben?
Auch das dürfte nicht der Aufgabenstellung entsprechen. IMHO ist himitsu auf dem richtigen Weg, auch wenn das Plappermaul wieder zu vorschnell war :tongue:
|
Re: Fenster verschieben?
Ich habs mal ausprobiert:
Ich bin so vorgegangen: Wenn man Maustaste drückt, dann wird er Punkt gespeichert auf den geklickt wurde (relative Koordinaten auf dem Formular, also Point(X,Y) wobei x,y aus OnMouseDown sind) Dann im OnMouseMove wird die neue Position mithilfe der aktuellen, globalen Mauskoordinaten und dem Punkt vom MouseDown (als ne Art Offset) berechnet. |
Re: Fenster verschieben?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz