Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form per Drag&Drop bewegen (https://www.delphipraxis.net/51091-form-per-drag-drop-bewegen.html)

glkgereon 5. Aug 2005 20:51


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?

Ultimator 5. Aug 2005 21:32

Re: Form per Drag&Drop bewegen
 
Hier im Forum suchenFormular verschieben titelleiste ;)

Airblader 5. Aug 2005 22:06

Re: Form per Drag&Drop bewegen
 
Zitat:

Zitat von Ultimator

Zitat:

Leider konnte die Suchanfrage nicht beantwortet werden,
da die gesuchten Begriffe nicht in der Datenbank vorhanden sind.
:mrgreen:

Ultimator 5. Aug 2005 22:09

Re: Form per Drag&Drop bewegen
 
In solchen Fällen, wie du einen darstellst, verwende ich nur zu gerne das Wort "Depp" :P :mrgreen:

glkgereon 6. Aug 2005 07:59

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...

MrKnogge 6. Aug 2005 08:30

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:
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;
gruss

Nils_13 6. Aug 2005 08:31

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;

MrKnogge 6. Aug 2005 08:41

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

turboPASCAL 6. Aug 2005 09:38

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: Fenster ohne Titelzeile verschieben

MrKnogge 6. Aug 2005 09:44

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

glkgereon 6. Aug 2005 09:59

Re: Form per Drag&Drop bewegen
 
Zitat:

Zitat von MrKnogge
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

genau das!!!

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?

Nils_13 6. Aug 2005 11:30

Re: Form per Drag&Drop bewegen
 
Delphi-Quellcode:
...

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;
Eine Alternative ... .

glkgereon 6. Aug 2005 11:43

Re: Form per Drag&Drop bewegen
 
kann man da auch direkt verschieben? oder auch nur als umrandung mit dem grauen rahmen?

MrKnogge 6. Aug 2005 11:49

Re: Form per Drag&Drop bewegen
 
Welche umrandung ?

Bei mir wird die Form direkt verschoben, aber vielleicht ist das auch OS abhängig.

gruss

glkgereon 6. Aug 2005 11:54

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.

turboPASCAL 6. Aug 2005 12:02

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?

glkgereon 6. Aug 2005 12:27

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