Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Firemonkey Drag&Drop (https://www.delphipraxis.net/180900-firemonkey-drag-drop.html)

OnlyOne 29. Jun 2014 19:56

Firemonkey Drag&Drop
 
Hallo,

ich würde gerne den Inhalt bzw. das Bild einer Image Komponente in eine andere
Image Komponente per Drag&Drop ziehen.
Dies war in einer Vcl Anwendung kein Problem aber bei FMX stellt ist das schon anders.
Es fehlen so zum Beispiel die Proceduren BeginDrag oder Accept.
Nun weis ich nicht wie ich dies in FMX realisieren soll.

Danke im Voraus.

Gruß OnlyOne

Sir Rufo 29. Jun 2014 20:22

AW: Firemonkey Drag&Drop
 
Welche Delphi Version?

OnlyOne 29. Jun 2014 20:23

AW: Firemonkey Drag&Drop
 
Zurzeit verwende ich XE6

Sir Rufo 29. Jun 2014 20:39

AW: Firemonkey Drag&Drop
 
Einmal https://forums.embarcadero.com/threa...ssageID=447850

Zweimal Bei Google suchenfmx drag and drop (reichlich)

OnlyOne 30. Jun 2014 15:43

AW: Firemonkey Drag&Drop
 
Habe gehofft es gäbe eine schöne (einfache) Möglichkeit ohne Prozeduren zu überschreiben
oder mit dem Dragmode "dmManual".
Aber trotzdem Danke :)

Harry Stahl 30. Jun 2014 19:41

AW: Firemonkey Drag&Drop
 
Eigentlich brauchst Du nichts zu überschreiben.

Ab Delphi XE6 wurde das "Accept" (Boolean) in der Ereignisprocedure "DragOver" durch "Operation" (TDragOperation) ersetzt. Statt Accept = True (oder false) setzt Du nun mit den einzelnen Auswahlmöglichkeiten für "Operation" (TDragOperation.xyz) das gewünschte Verhalten. "None" setzt Du, wenn keine Operation erlaubt sein soll, dann zeigt die Komponente auch keine grafische Rückmeldung an (bei den anderen Optionen erscheint der blaue Auswahlrahmen).

Bei der Image-Komponente kannst Du z.B. DragMode auf "dmAutomatic" setzen, damit der Drag-Vorgang automatisch gestartet werden kann.

Im "OnDragDrop"-Event kannst Du dann entsprechend reagieren.

sintronic86 21. Nov 2017 15:34

AW: Firemonkey Drag&Drop
 
Ich weiß, das Thema ist schon ziemlich alt. Leider hänge ich gerade an genau dieser Stelle.

Das DragDrop-Verhalten mit app-eigenen Komponenten, bei denen DragMode auf dmAutomatic steht funktioniert auch super.
Ich möchte allerdings jetzt Dateien von außen auf das TDropTarget fallen lassen! Leider reagiert dieses überhaupt nicht....

Auch via Google und der Delphi-Hilfe bin ich leider nicht fündig geworden!

Beste Grüße
Björn

Harry Stahl 21. Nov 2017 17:59

AW: Firemonkey Drag&Drop
 
Hier mal ein Beispiel, um die Dateinamen per Windows Explorer (bzw. auf dem MAC vom Finder aus) in ein Memofeld zu ziehen:

Delphi-Quellcode:
procedure TForm6.Memo1DragDrop(Sender: TObject; const Data: TDragObject;
  const Point: TPointF);
var
  S: string;
begin
  if (Data.files <> NIL) then
  begin
    for S in Data.Files do
      TMemo (Sender).lines.Add (s);
  end;
end;

procedure TForm6.Memo1DragOver(Sender: TObject; const Data: TDragObject;
  const Point: TPointF; var Operation: TDragOperation);
begin
  Operation := TDragOperation.Copy;
end;
Hinweis: In meinem letzten FMX-Buch zu Delphi 10.2 findest Du bei Bedarf unter Rezept 12 ein Beispiel, mit dem man Text z.B. aus den meisten Web-Browsern per Drag & Drop in sein Programm (z.B. ein Edit-Feld) ziehen kann.

sintronic86 22. Nov 2017 07:26

AW: Firemonkey Drag&Drop
 
Liste der Anhänge anzeigen (Anzahl: 2)
Guten Morgen!

Danke für die schnelle Antwort.
Trotz Verwendung deines Codes reagiert mein Programm leider überhaupt nicht darauf (siehe Anhang)!
Muss ich eventuell eine Option alá "DragDropActive" oder so was aktivieren?

Towmuz 22. Nov 2017 10:27

AW: Firemonkey Drag&Drop
 
Moin,

hast du bei der Komponente auf die Gedropt werden soll evtl. das Häkchen bei der HitTest Eigenschaft rausgenommen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz