Filedrop auf TEdit unter Linux verhindern, aber wie ?

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1606
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:

Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von corpsman »

Hallo Zusammen,
ich hab hier ein Programm, bei welchem ich in der TForm1, das AllowDropFIles Attribut gesetzt habe und beim OnDropFiles auch ganz normal meinen Event bekomme, mit dem ich dann die "Gedropten" Dateien bekomme.

Nun scheint es aber unter Linux (GTK2/ Mint Mate) so zu sein, dass man eine FIle auch direkt in ein TEdit "droppen" kann, dort kommt es dann wohl als Ansistring an.

Die Frage ist nun, wie kann ich das verhindern ?
--
Just try it

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2785
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von m.fuchs »

Ich fürchte, so etwas geht gar nicht. Wenn ich mir andere Software so ansehe...

Der Taschenrechner nimmt auch den Dateinamen entgegen.
Bildschirmfoto zu 2025-03-10 17-53-43.png
Bildschirmfoto zu 2025-03-10 17-53-43.png (48.25 KiB) 2097 mal betrachtet

Und auch Gimp - welches ja sonst beim Drop einer Datei diese lädt - hat ein Problem wenn sie auf ein Edit-Feld gezogen wird.
Bildschirmfoto zu 2025-03-10 17-52-21.png
Bildschirmfoto zu 2025-03-10 17-52-21.png (94.7 KiB) 2097 mal betrachtet
Ich denke die "Lösung" wird daraus bestehen, dass du ein Panel mit der Aufschrift "Drag your files here" in dein Form legst.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1187
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von kralle »

Moin,
wie wäre es, wenn Du in dem TEdit, nur die Zeichen zulässt, die Du erwartest?
Auch könntest Du die Anzahl der Zeichen begrenzen.
Wenn man über keypressed oder so die Zeicheneingabe steuerst, dann sollte das hineinkopieren doch einfach nicht mehr funktionieren, da ja keine Taste gedrückt wird.

Nur so eine Idee.

Gruß Kralle
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1606
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: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von corpsman »

Bei meinem Programm ging es ja darum dass man Dateien ins Programm dropt:
https://github.com/PascalCorpsman/Examp ... d_get_file
Ich denke ich werden die Lösung von Michael machen müssen mit dem "Drop ypur Files here".

Danke fürs bestätigen und Reproduzieren, dann weis ich dass der "Fehler" wenigstens nicht in meinem Programm ist ..
--
Just try it

TSchnuckenbock
Beiträge: 114
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von TSchnuckenbock »

Eventuell habe ich das Problem nicht ganz verstanden, aber aus dem Bauch raus würde ich mal probieren, ob man mit dem Event

Code: Alles auswählen

TEdit.OnDragOver
und dem Setzen des Accept auf false, das nicht verhindern kann.
Oder im Event OnDragDrop das Objekt an die Form weiterleiten...

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1606
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: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von corpsman »

@TSchnuckenbock
ich hab das mal ausprobiert, die Events werden nicht gefeuert, wein accept := false bringt nichts, da der Code ja nie ausgeführt wird :/
--
Just try it

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 277
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von h-elsner »

Bei mir steht der Dateiname nach dem Droppen auch im Editfeld drin, aber die Datei selber wird trotzdem richtig verarbeitet. Stört dich nur der Eintrag?

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1606
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: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von corpsman »

Wenn du die Datei auf das Formular "dropst" dann ist alles richtig. Wenn du sie aber in das Edit Dropst, dann steht da der Dateiname 2 mal drin und auch noch merkwürdig "ineinander" -> Fehler.
--
Just try it

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 277
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von h-elsner »

Was mir noch auffällt ist, dass der Link im Edit.TextHint landet, wenn Edit.Text leer ist. Edit.Text bleibt da auch leer.

Benutzeravatar
Zvoni
Beiträge: 318
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von Zvoni »

hmmm....
Wie ich das verstehe, kommt die Datei von "ausserhalb" deiner Form/deines Programms (Von einem File-Explorer?).
In dem Moment, wo die Datei über die Form gezogen wird (noch nicht über dein TEdit!!), sollte doch OnDragOver der Form (!!) zünden.
Falls ja, das TEdit disablen, warten bis der FileDrop von der Form "verarbeitet" wird, das TEdit wieder enablen? GGfs. mit den "Farben" des TEdit spielen, falls du nicht das ausgegraute sehen willst

Kein Linux-Kiste zur Hand. Ausprobieren
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
theo
Beiträge: 10809
Registriert: Mo 11. Sep 2006, 19:01

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von theo »

Soweit ich weiss, haben Drag&Drop und Dropfiles nichts miteinander zu tun.
Es bringt nichts, bei diesen Events zu suchen.

Benutzeravatar
Zvoni
Beiträge: 318
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Filedrop auf TEdit unter Linux verhindern, aber wie ?

Beitrag von Zvoni »

theo hat geschrieben: Di 11. Mär 2025, 10:59 Soweit ich weiss, haben Drag&Drop und Dropfiles nichts miteinander zu tun.
Es bringt nichts, bei diesen Events zu suchen.
Deswegen schrieb ich auch "sollte zünden" (konjunktiv)
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Antworten