![]() |
Form per Drag&Drop bewegen
Hi
wie kann ich es schaffen, dass ich formulare per drag&drop verschieben kann? das problem ist das diese formulare keine Titelleiste haben werden, und somit mittels gedrückt halten der maus über der form bewegt werden müssen... das drag&drop sollte möglichst auch funktionieren, wenn eigentlich in eine kompo (zb Memo) geklickt wurde... hat da wer nen tipp oder ein beispiel? ist drag&drop da überhaupt der richtige ansatz? oder sollte ich mir lieber was über mousedown und mousemove basteln? |
Re: Form per Drag&Drop bewegen
|
Re: Form per Drag&Drop bewegen
Zitat:
Zitat:
|
Re: Form per Drag&Drop bewegen
In solchen Fällen, wie du einen darstellst, verwende ich nur zu gerne das Wort "Depp" :P :mrgreen:
|
Re: Form per Drag&Drop bewegen
hmmm..was soll das jetzt?
3 Postings ohne sinn... es geht eben nicht darum die form zu verschieben mittels der titelleiste...ich will im prinzip die "verschiebe-fähigkeit" der titelleiste auf die ganze form ausweiten, weil die titelleiste nicht da sein darf/soll... |
Re: Form per Drag&Drop bewegen
@Airblader
Ultimator wollte damit nur auf unsere hübsche Forn-Suche aufmerksam machen. @Ultimator Nich traurig sein, wenn dass niemand verstanden hat, wobei man, wenn du schon verlinkst, nun wirklich ein Resultat erwarten könnte. Aber bevor ihr beiden euch noch die Köpfe einschlagt :mrgreen: , poste ich mal schnell den Source:
Delphi-Quellcode:
gruss
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if (ssLeft in Shift) then begin ReleaseCapture; SendMessage(Form1.Handle, WM_SYSCOMMAND, SC_MOVE+1,0); end; end; |
Re: Form per Drag&Drop bewegen
Hi,
meinst du so etwas ?
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Perform(wm_syscommand,$f012, 0); end; |
Re: Form per Drag&Drop bewegen
Servus Nils,
er möchte sein Formular wie bei Winamp verschieben, sprich irgendwo auf die Form klicken, gedrückt halten und Formular verschieben und anschliesend wieder loslassen. (zumindest hab ich das so verstanden :gruebel: ) gruss |
Re: Form per Drag&Drop bewegen
@MrKnogge ,in was unterscheiden sich die beiden Versionen?
Nachteil: Wenn sich auf der Form ein Bitmap (Images... usw.) befinden auf die man dann klickt lässt sich das Fenster nicht verschieben. Luckie hat da mal was nettes gepostet: ![]() |
Re: Form per Drag&Drop bewegen
Ich hab die funktion in die FormOnMouseMove-Procedure, die von Nils ist wohl in der ButtonDown-Procedure?.
Wenn du ein Image hast musst du lediglich der OnMouseDown des TImage die obige procedure zuweisen. gruss |
Re: Form per Drag&Drop bewegen
Zitat:
ich werd die codes von euch ma durchtesten mit den kompos is nicht das dicke prob, da es eh nur 2 sind ^^ also das Mousedown-teil funzt...super!!! geht das vielleicht dass man nicht das graue rechteck hat sondern direkt verschoben wird? |
Re: Form per Drag&Drop bewegen
Delphi-Quellcode:
Eine Alternative ... .
...
private procedure WMNCHitTest(var Msg : TMessage); message WM_NCHITTEST; end; ... procedure TForm1.WMNCHitTest(var Msg : TMessage); begin if GetAsyncKeyState(VK_LBUTTON) < 0 then Msg.Result := HTCAPTION else Msg.Result := HTCLIENT; end; |
Re: Form per Drag&Drop bewegen
kann man da auch direkt verschieben? oder auch nur als umrandung mit dem grauen rahmen?
|
Re: Form per Drag&Drop bewegen
Welche umrandung ?
Bei mir wird die Form direkt verschoben, aber vielleicht ist das auch OS abhängig. gruss |
Re: Form per Drag&Drop bewegen
also bei mir (windows 2000, SP4) wird zunächst (solang die maus gedrückt ist) nur ein 3-4 Pixel breiter grauer rahmen verschoben.
erst beim loslassen wird die eigentliche form positioniert. |
Re: Form per Drag&Drop bewegen
:gruebel:
Bei allen Programmen ? Desktop -> Eigenschaften -> Darstellung -> Effekte -> Fensterinhalt beim Ziehen anzeigen oder hab ich da jetzt was falsch verstanden? |
Re: Form per Drag&Drop bewegen
upsala...ja, jetzt gehts^^
bei allen fenstern wurde so verschoben, aber aufgefallen ist es mir nur bei meinem programm.... *rofl* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 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