Drag&Drop aus externer Anwendung
-
- Beiträge: 607
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Drag&Drop aus externer Anwendung
Hallo,
weiß jemand ob es möglich ist aus einer externen Anwendung (zum Beispiel Browser) Text in eine Zelle eines Stringgrids zu ziehen?
Ich habe dazu leider nichts gefunden.
Von einem Edit klappt es schon (auch wenn der Cursor nicht passt).
Viele Grüße
Bernd
weiß jemand ob es möglich ist aus einer externen Anwendung (zum Beispiel Browser) Text in eine Zelle eines Stringgrids zu ziehen?
Ich habe dazu leider nichts gefunden.
Von einem Edit klappt es schon (auch wenn der Cursor nicht passt).
Viele Grüße
Bernd
- Dateianhänge
-
project1.zip
- (139.91 KiB) 95-mal heruntergeladen
-
- Beiträge: 724
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Drag&Drop aus externer Anwendung
Soweit ich mich erinnern kann, hatte das A. Melanders Drag&Drop-Komponente. Irgendjemand hat das auf Lazarus portiert. Such bei OPM nach DragDrop.
Das ist aber nur für Windows.
Das ist aber nur für Windows.
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Drag&Drop aus externer Anwendung
Ich bin mir nicht sicher, aber ist das nicht im DoubleCommander gelöst ? Der ist ja fpc/Lazarus basierend.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 359
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Drag&Drop aus externer Anwendung
Hallo!
Die in FreePascal enthaltenen Drag&Drop-Ereignisse/Methoden beziehen sich immer auf ein TDragObject, das auf ein Control in der eigenen Anwendung zeigt.
Damit ist es also nicht möglich, irgendwas von außerhalb der eigenen Anwendung zu empfangen.
Eine Ausnahme ist OnDropFiles (AllowDropFiles), aber das bezieht sich wirklich nur auf Dateien (Dateinamen). Andere externe Inhalte scheinen nicht vorgesehen zu sein.
Die notwendigen plattformabhängigen Dragging-Mechanismen scheint die oben verlinkte Komponente mitzubringen. Eventuell hat es auch etwas mit Docking zu tun, wobei kein Fenster, sondern andere Inhalte "angedockt" werden.
Die in FreePascal enthaltenen Drag&Drop-Ereignisse/Methoden beziehen sich immer auf ein TDragObject, das auf ein Control in der eigenen Anwendung zeigt.
Damit ist es also nicht möglich, irgendwas von außerhalb der eigenen Anwendung zu empfangen.
Eine Ausnahme ist OnDropFiles (AllowDropFiles), aber das bezieht sich wirklich nur auf Dateien (Dateinamen). Andere externe Inhalte scheinen nicht vorgesehen zu sein.
Die notwendigen plattformabhängigen Dragging-Mechanismen scheint die oben verlinkte Komponente mitzubringen. Eventuell hat es auch etwas mit Docking zu tun, wobei kein Fenster, sondern andere Inhalte "angedockt" werden.
Re: Drag&Drop aus externer Anwendung
Naja, aber ein bisschen geht das schon. Was erwartet ihr genau?
Auf dem Formular "AllowDropFiles:=true" und das Ereignis "OnDropFiles" einhängen.
Dann bekomme ich so einen Dateinamen in die gewünschte Zelle des StringGrid1:
Bei mir auf Linux/KDE fügt das auch z.B. markierte Texte aus dem Webbrowser ein. Merkwürdig, aber ist so.
Auf dem Formular "AllowDropFiles:=true" und das Ereignis "OnDropFiles" einhängen.
Dann bekomme ich so einen Dateinamen in die gewünschte Zelle des StringGrid1:
Code: Alles auswählen
procedure TForm1.FormDropFiles(Sender: TObject; const FileNames: array of string);
var p: TPoint;
begin
p := Mouse.CursorPos;
if PtInRect(StringGrid1.BoundsRect, Form1.ScreenToClient(p)) then
begin
p := StringGrid1.ScreenToClient(p);
p := StringGrid1.MouseToCell(p);
StringGrid1.Cells[P.X, P.Y] := ExtractFileName(FileNames[0]);
end;
end;
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Drag&Drop aus externer Anwendung
Ist dies kein Bug ?Bei mir auf Linux/KDE fügt das auch z.B. markierte Texte aus dem Webbrowser ein. Merkwürdig, aber ist so.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Drag&Drop aus externer Anwendung
Es ist ein Wunder!Mathias hat geschrieben: Di 11. Feb 2025, 15:56Ist dies kein Bug ?Bei mir auf Linux/KDE fügt das auch z.B. markierte Texte aus dem Webbrowser ein. Merkwürdig, aber ist so.

Nein, wieso? Das tut ja keinem weh.
Es kann höchstens sein, dass es auf Win nicht so funktioniert. Das weiss ich aber nicht.
-
- Beiträge: 607
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Drag&Drop aus externer Anwendung
Hallo,
zunächst allen vielen Dank für die Antworten. Ich werde mit euere Vorschläge alle Ansehen.
Zunächst hab ich den Code von Theo versucht. Leider klappt das bei mir unter Mint nicht. Was ich aber in dem Zug festgestellt hab ist das ich vom Browser in das Editfeld Text ziehen kann. Und zwar geht das auch ganz ohne Code. Warum auch immer.
Viele Grüße
Bernd
zunächst allen vielen Dank für die Antworten. Ich werde mit euere Vorschläge alle Ansehen.
Zunächst hab ich den Code von Theo versucht. Leider klappt das bei mir unter Mint nicht. Was ich aber in dem Zug festgestellt hab ist das ich vom Browser in das Editfeld Text ziehen kann. Und zwar geht das auch ganz ohne Code. Warum auch immer.
Viele Grüße
Bernd
Re: Drag&Drop aus externer Anwendung
Das steht in dem von dir zitierten Text unter Problem 2.wennerer hat geschrieben: Di 11. Feb 2025, 16:54 Was ich aber in dem Zug festgestellt hab ist das ich vom Browser in das Editfeld Text ziehen kann. Und zwar geht das auch ganz ohne Code. Warum auch immer.
https://wiki.freepascal.org/Drag_and_Dr ... C3%A4utert