![]() |
Frage zu: Fenster ohne Titelzeile verschieben
Frage an Luckie:
Ich habe gerade den Code aus ![]() Wozu überprüfst du in WMNCHitTest, ob ein Control getroffen wurde?
Delphi-Quellcode:
Wenn ich das drin lasse, dann passiert bei mir garnichts. Wenn ich es rausnehme, dann kann ich im gesamten Formular klicken und verschieben.
ControlAtPos(Point(Message.xPos, Message.yPos), True, True) <> nil
Müsste der Test nicht andersherum lauten? Ich meine ...
Delphi-Quellcode:
... damit man dem Control nicht den Mausklick wegnimmt?
ControlAtPos(Point(Message.xPos, Message.yPos), True, True) = nil
|
Re: Frage zu: Fenster ohne Titelzeile verschieben
Zitat:
![]() |
Re: Frage zu: Fenster ohne Titelzeile verschieben
Zitat:
|
Re: Frage zu: Fenster ohne Titelzeile verschieben
Es gibt noch eine zweite Möglichkeit:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); const SC_DRAGMOVE = $F012; begin if Button = mbleft then begin ReleaseCapture; Form1.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0); end; end; Dies kann für jede Komponente angewendet werden, die ein OnMouseDown-Ereignis besitzt. |
Re: Frage zu: Fenster ohne Titelzeile verschieben
@DevilsCamp: Ich würde auch diese Lösung bevorzugen (schließlich sind wir hier ja auch im VCL Thread). Zur Ergänzung noch: Wenn auf dem Splashscreen ein Bild (z.B.: TImage) ist musst das ganze natürlich auch in das OnMouseDown von dem TImage (bzw. die gleiche procedure zuweisen)
|
Re: Frage zu: Fenster ohne Titelzeile verschieben
und natürlich bei jeder anderen Komponente auch.
Deshalb wollte ich eine ![]() Für Anregungen bin ich offen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 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-2025 by Thomas Breitkreuz