![]() |
nicht modale dialoge verschieben
hi,
ich hab mal ein prog nonvcl programmiert. ich habe eine dialog resource. aus der lade ich einen dialog ohne titelleiste. wie kann ich diesen dialog verschieben.(wenn ich mit der Maus auf den dialog klicke soll er sich verschieben.) |
Re: nicht modale dialoge verschieben
Du zeigst aber trotzdem ein Form an oder.
Delphi-Quellcode:
private
procedure WMNCHitTest(var M: TWMNCHitTest); message WM_NCHitTest; .. procedure TForm1.WMNCHitTest (var M: TWMNCHitTest); begin inherited; if M.Result = htClient then M.Result := htCaption; end; Hoffe es hilft, hatte noch nie was mit nonvcl am Hut. |
Re: nicht modale dialoge verschieben
Nein ich benutzte keine Form. Ich programmiere mit der Win32-Api. Eigentlich müsste das doch sicher Luckie wissen. Hier nochmals meine Frage: Wie bewege ich meinen Dialog auf dem Desktop, ohne titelleiste.
|
Re: nicht modale dialoge verschieben
Im Grunde doch genauso wie mit VCL-Fenstern ohne Titelleiste.
|
Re: nicht modale dialoge verschieben
Hi bei der VCL geht das so.
Delphi-Quellcode:
ich habs bei meinem dialog probiert, leider klappt das nicht.
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; SendMessage(Form1.Handle, WM_SYSCOMMAND, $F012, 0); end;
Delphi-Quellcode:
case umsg of
WM_SIZE: BEGIN ReleaseCapture; SendMessage(HWND, WM_SYSCOMMAND, $F012, 0); END; |
Re: nicht modale dialoge verschieben
ReleaseCapture und WM_SYSCOMMAND+$F012 sind Functionen/Messages der VCL.
Wie gesagt du mußt es schon selber machen, also die Messages für MausClick/-Move von der Form abfangen und auswerten. :zwinker: |
Re: nicht modale dialoge verschieben
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin,
Zitat:
|
Re: nicht modale dialoge verschieben
Zitat:
|
Re: nicht modale dialoge verschieben
Zitat:
Zitat:
Gruß, teebee |
Re: nicht modale dialoge verschieben
So mache ich es in meinen Dialogen:
Delphi-Quellcode:
{ move the window with the left button down }
WM_LBUTTONDOWN: begin SetCursor(LoadCursor(0, IDC_SIZEALL)); SendMessage(hDlg, WM_NCLBUTTONDOWN, HTCAPTION, lParam); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 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