Drag & Drop [ gelöst ]
- corpsman
- Lazarusforum e. V.
- Beiträge: 1498
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Drag & Drop [ gelöst ]
Guten Morgen ,
Die Suchfunktion und Google haben mir leider nicht helfen können, also seid nun ihr dran.
Ich bastle mir gerade eine kleine Anwendung in der ich Dateien, laden möchte. Wie man eine Datei laden kann weis ich. Das Problem ist das ich das Drag and Drop nicht hinbekomme.
Also ich will sozusagen, das ich im Dolphin, oder vom Desktop aus, eine oder mehrere Dateien anklicke und dann mit Drag and Drop auf meine Anwendung ziehe und diese dann loslasse. Unter Windows und Delphi erhielt man da eine Liste der Dateinamen, aber wie geht das unter Lazarus, bzw Linux ?
Am Besten wäre natürlich eine Plattformunabhängige Lösung, eine die nur unter Linux funktioniert, würde mir allerdings auch schon genügen .
Die Suchfunktion und Google haben mir leider nicht helfen können, also seid nun ihr dran.
Ich bastle mir gerade eine kleine Anwendung in der ich Dateien, laden möchte. Wie man eine Datei laden kann weis ich. Das Problem ist das ich das Drag and Drop nicht hinbekomme.
Also ich will sozusagen, das ich im Dolphin, oder vom Desktop aus, eine oder mehrere Dateien anklicke und dann mit Drag and Drop auf meine Anwendung ziehe und diese dann loslasse. Unter Windows und Delphi erhielt man da eine Liste der Dateinamen, aber wie geht das unter Lazarus, bzw Linux ?
Am Besten wäre natürlich eine Plattformunabhängige Lösung, eine die nur unter Linux funktioniert, würde mir allerdings auch schon genügen .
Zuletzt geändert von corpsman am Sa 19. Sep 2009, 09:25, insgesamt 1-mal geändert.
--
Just try it
Just try it
Re: Drag & Drop ...
Jedes Formular hat die Eigeschaft "AllowDropFiles" und das Ereignis "OnDropFiles"
- corpsman
- Lazarusforum e. V.
- Beiträge: 1498
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Drag & Drop ...
lol, wenn doch nur alles so einfach wäre.
Also das geht, aber nun wirds speziell..
Auf meiner Form hat es 2 Listviews, und ich würde ganz gerne rausbekommen auf welcher der beiden die Files gedroppt wurden. Gibts da auch noch nen tollen Trick ?
Also das geht, aber nun wirds speziell..
Auf meiner Form hat es 2 Listviews, und ich würde ganz gerne rausbekommen auf welcher der beiden die Files gedroppt wurden. Gibts da auch noch nen tollen Trick ?
--
Just try it
Just try it
Re: Drag & Drop ...
Weiss ich doch auch nicht auswendig. Bisschen tüfteln.
Das könnte klappen:
Das könnte klappen:
Code: Alles auswählen
procedure TForm1.FormDropFiles(Sender: TObject; const FileNames: array of String);
begin
Caption:=FindControlAtPosition(Mouse.CursorPos,true).Name;
end;
- corpsman
- Lazarusforum e. V.
- Beiträge: 1498
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Drag & Drop ...
Theo du bist ein Goldjunge..
FindControlAtPosition kannte ich noch nicht, mein Ansatz wäre gewesen die Maus pos zu hohlen, und dann "Von" hand zu schauen über welcher Komponente diese liegt, aber so ist das natürlich der 1a weg.
Vielen Dank für Deine Hilfe.
FindControlAtPosition kannte ich noch nicht, mein Ansatz wäre gewesen die Maus pos zu hohlen, und dann "Von" hand zu schauen über welcher Komponente diese liegt, aber so ist das natürlich der 1a weg.
Vielen Dank für Deine Hilfe.
--
Just try it
Just try it
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Drag & Drop [ gelöst ]
Wieso benutzt du nicht OnDragDrop des Listviews?
- corpsman
- Lazarusforum e. V.
- Beiträge: 1498
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Drag & Drop [ gelöst ]
so wie ich das Tutorial von Hier verstanden habe, gillt das nur für Objecte die auf der Form sind.
--
Just try it
Just try it
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Drag & Drop [ gelöst ]
Ich verstehe nicht, welches Objekt nicht auf dem Formular sein sollte. Aber selbst wenn dem so wäre, würde irgendwo - zumindest beim Formular selbst - ein Drop-Ereignis ausgelöst werden, das ein internes Verschieben des Drop-Inhaltes zulässt. BTW: Wenn du nur auf das Ende des Drag 'n Drop-Vorgangs reagierst, wird der Benutzer vorher wahrscheinlich nicht darüber informiert, ob seine Aktion erfolgreich sein könnte (Cursor=crDrag, crNoDrop). Das wäre schlecht.
Re: Drag & Drop [ gelöst ]
@Scotty: Das Problem ist ja gelöst. Er handelt sich um File-Dropping, also Dateien vom Explorer / Konqueror / Dolphin in die Anw. zu zîehen.
Mit Lazarus Internem Drag Drop hat das nicht viel zu tun.
Mit Lazarus Internem Drag Drop hat das nicht viel zu tun.
-
- Lazarusforum e. V.
- Beiträge: 7178
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Drag & Drop [ gelöst ]
Mit Lazarus Internem Drag Drop hat das nicht viel zu tun.
Ich sehe das genau so wie "Scotty", eigentlich sollten die vor gesehenen Events der jeweiligen Komponenten ausgelöst werden, wenn eine DD Event eingetreten ist. Ob das nun von einer Komponente aus geht spielt dabei keine große rolle. Das Form ist ja auch "nur" eine Komponente. Wusste nicht das das unterschieden wird. Ich dachte Draq und Drop ist das selbe ob das nun Dateien sind die von außen auf die Anwendung gezogen wird, oder ob das nun Einträge sind, die in einer LisBox oder ListView verschoben wird.
MFG
Michael Springwald
Michael Springwald
Re: Drag & Drop [ gelöst ]
pluto hat geschrieben:Ich dachte Draq und Drop ist das selbe ob das nun Dateien sind die von außen auf die Anwendung gezogen wird, oder ob das nun Einträge sind, die in einer LisBox oder ListView verschoben wird.
Wozu gäbe es denn dann das Property "AllowDropFiles" und das Event "OnDropFiles" ?