TDBMemo unter Linux (BUG -> Bugreport erstellt)

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

TDBMemo unter Linux (BUG -> Bugreport erstellt)

Beitrag von MmVisual »

Hallo,

Ich habe ein spezielles Linux-Problem, das auch nur unter Linux so komisch ist. Ich entwickle schon lange eine EXE für Windows und Linux (EleLa), seit neuestem ist die Eingabe eines Textes in die Datenbank per TDBMemo unter Linux sehr suspekt.

Ein Datensatz ist da, das TDBMemo ist leer, der Datensatz ist noch nicht im Edit-Mode.
Nun tippt man in TDBMemo z.B. das Wort "Das".
Das passiert:
Beim ersten Buchstabe "D" wird der Datensatz in den Edit-Mode versetzt (->OK), dann springt der Cursor auf die position VOR dem "D", (->Nicht OK), der zweite Buchstabe "a" steht dann vor dem "D", also das sieht dann so aus "aD".

Unter Windows geht das richtig. Wenn da das TDBMemo leer ist, kann man sofort los tippen und der Text wird genau an der Cursor Position eingefügt wie es sein soll.

Dazu kommt noch dass ein Text Einfügen unter Linux (Ctrl+V) auch nicht wirklich immer so funktioniert wie erwartet.

Kann der Bug jemand unter Linux bestätigen?

Verwendete Komponente:
TDBMemo -> TDataSource -> TZQuery -> TZConnection -> SQLite-Datenbank

Verwendetes Lazarus:
2.0.8/64 für Debian. (Installiert der "Stable Version" per FPCUPDeluxe)
Zeos 7.2.7rc

Dankeschön, viele Grüße Markus
Zuletzt geändert von MmVisual am Mi 20. Mai 2020, 20:59, insgesamt 1-mal geändert.

gladio
Beiträge: 123
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-32/64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 32/64Bit
Wohnort: Rügen

Re: TDBMemo unter Linux (BUG?)

Beitrag von gladio »

Hast du schon mal ein anderes Linux versucht?
Hier im Forum werden immer mal seltsame Verhalten bei bestimmten Distributionen beschrieben.
Ein heisser Kandidat scheint da Mint zu sein.

Ich934
Lazarusforum e. V.
Beiträge: 152
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: TDBMemo unter Linux (BUG?)

Beitrag von Ich934 »

Hallo,

kann ich nicht bestätigen mit SQLite unter ArchLinux. Allerdings verwende ich LiteDAC als Zugriffskomponente.

Schöne Grüße
Tipp für PostgreSQL: www.pg-forum.de

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Kann man vielleicht ein anderes Theme verwenden?

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Beim RaspberryPi ist es auch so, dass es nicht richtig geht.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4302
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: TDBMemo unter Linux (BUG?)

Beitrag von af0815 »

Ich gehe davon aus das du gtk2 als widgetset verwendest. Weil Windows verwendet normalerweise das nicht. Nur damit man es richtig zuordnet.

Rasbian ist Debian basierend und normalerweise gtk2.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Ich934
Lazarusforum e. V.
Beiträge: 152
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: TDBMemo unter Linux (BUG?)

Beitrag von Ich934 »

Ich arbeite unter Linux mit Qt5... Nur zur Info...
Tipp für PostgreSQL: www.pg-forum.de

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Wie kann ich auf QT5 umstellen?

Muss ein anderes Theme unter Linux installiert werden?
Oder das Lazarus anders installiert werden?

Was hat es für Konsequenzen für Linux-User? Läuft meine EXE dann nur wenn der Linux-PC QT5 Komponenten installiert hat?

Kann man die EXE so einstellen, dass wenn QT5 installiert ist, dass QT5 mit Vorrang genutzt wird vor GTK?

Ich nutze Linux nur zum Übersetzen der EXE, den Bug hat ein User gemeldet. Ich habe von GTK/QT5/andere nicht wirklich den Durchblick.
Das habe ich soweit verstanden: https://wiki.freepascal.org/Widgetset
Dass zwischen Lazarus und dem Bildschirm noch ein Widgetset/Theme dazwischen hängt.

Sorry, für die vielen Fragen. Früher hatte ich die EXE mit SUSE Linux gebaut, da gab es solche Probleme nicht. Weil die C-Platte der VBox dann zu klein war hab ich mir neu ein Debin aufgesetzt.

Dankeschön, Viele Grüße Markus

Ich934
Lazarusforum e. V.
Beiträge: 152
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: TDBMemo unter Linux (BUG?)

Beitrag von Ich934 »

Guckst du hier: viewtopic.php?f=12&t=12605

Die Libs müssen natürlich vorhanden sein. Bei Linux meistens der Fall bzw. kann leicht nachinstalliert werden. Alternativ mitliefern (bei Windows empfehlenswert - wenn du dort Qt5 machen willst).
Tipp für PostgreSQL: www.pg-forum.de

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Die EXE unter Windows ist ja gerade so genial, dass die einfach Läuft ohne noch extra DLL's zu benötigen.
Das ganze "QT5" ist eher ein geraffel von vielen DLL's und macht auf Dauer nur Probleme (auf sicht von 10..20 Jahren). Die QT5 Entwicklungsumgebung ist zudem nervig da so viele DLL's ständig benötigt werden und ein Setup gleich mal mehrere 100MB braucht.

Unter Linux startet die EXE ebenfalls einfach. Da noch ein ganzen Haufen dazu installieren mag ja für einen Linux-Crack mit einem halben meter Bart ja "einfach" sein, aber nicht für den Otto-Normalo-DAU. (der Crack hatte wohl vor lauter Probleme keine Zeit mehr sich zu rasieren :mrgreen: )

QT5 möchte ich nicht verwenden, zumindest nicht unter Windows, da sind die Theme so gut da braucht es kein QT5 und eventuelle neue Probleme.
Unter Linux sollte die EXE alleine entscheiden welche GUI Komponente da verwendet werden, bzw. diese dann richtig nutzen. Es ist zwar nett dass man unter Linux die Freiheit hat etwas "anderes" zu verwenden, wenn das eine Buggy ist, mir wäre es dennoch lieber wenn man die Bugs beheben würde.

Ist es somit nachgewiesen dass ein ein Bug von Lazarus ist (-> Mantis Eintrag) oder ist es ein Bug der GTK3 (-> kein Mantis eintrag) ?

Dankeschön, viele Grüße Markus

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4302
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: TDBMemo unter Linux (BUG?)

Beitrag von af0815 »

A) Welche Linux Distri hatte der Benutzer mit dem Problem ?!
B) Ein minimales Beispiel hilft sowohl hier als auch im Bugreport.

Und wenn du nichts besonderes eingestellt hast, so ist GTK2 unter Linux default. Windows hat sein eigenes Widgetset als default.

Stell ja nichts um :-) das kann maximal eine Menge an Arbeit werden, eher keinen Erfolg bringen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Welche Linux Distri derjenige hat weiß ich nicht. Ich habe dieses ISO in einer VBox installiert: "debian-10.1.0-amd64-netinst.iso".

Im Anhang ein ZIP mit dem Demo Projekt sowie ein kleines Bildschirm-Video in dem ich die Buchstaben "Das" tippe.
Das Demo-Projekt verwendet nicht die Zeos-Komponente sondern TMemDataset, was bei Lazarus von Haus aus dabei ist. Damit solle es jeder nachstellen können.
TestTDBMemo.zip
Demo
(125.45 KiB) 35-mal heruntergeladen
2020-05-18 17-17-25.mp4.zip
Bildschirm-Video
(108.78 KiB) 32-mal heruntergeladen
Vielen Dank, Grüße Markus

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Ich habe nun ein anderes Linux "openSUSE-Leap-15.1-DVD-x86_64.iso" installiert und Lazarus V2.0.8. (Randbemerkung: FpcUpDeluxe ging nicht, aber die RPM Pakete hatten funktioniert)

Leider funktioniert das TDBMemo unter Suse auch nicht korrekt.

Der User der die Probleme mir meldete hat diese Konfiguration:
Unterbau: Ubuntu 16 xenial
Distro: Ubuntu MATE
Desktopumgebung: MATE Desktop (als Nachfolger von Gnome2)
GUI/Theme: Ambient, GTK3
Fensterverwaltung: Metacity, Komposit

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4302
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: TDBMemo unter Linux (BUG?)

Beitrag von af0815 »

Debian Buster LXDE Desktop (plain, naked, FPC+Lazarus only !! in VM)

Lazarus 2.0.9 r63185M FPC 3.2.0 x86_64-linux-qt5 installiert:
Im Projekt is qt5 als default widgetset angegeben.
Es läuft ohne Probleme und das Memo verhält sich normal.
Im Projekt is gtk2 als widgetset angegeben.
Der Fehler ist wie beschrieben nachvollziehbar

Lazarus 2.0.9 r63185M FPC 3.2.0 x86_64-linux-gtk2:
Im Projekt is gtk2 als default widgetset angegeben.
Der Fehler ist wie beschrieben nachvollziehbar
Im Projekt is qt5 als widgetset angegeben.
Es läuft ohne Probleme und das Memo verhält sich normal.

-> Sieht wirklich nach Bug aus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: TDBMemo unter Linux (BUG?)

Beitrag von MmVisual »

Dankeschön für die Kontrolle!
Ich schreibe nachher ein Mantis-Eintrag.

VG Markus

Antworten