TLabel und TLabeledEdit ohne Schrift unter Linux

Antworten
Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von Nimral »

Kennt jemand folgendes Problem:

- ich erstelle ein Projekt unter Windows, gestalte mein Mainform, alles gut. Ich schiebe das Projekt per Quellcode-Verwaltung auf Linux (Debian Buster). Projekt läuft, nur ... in allen TLabels und TLabeledEdits fehlt die Beschriftung. Spielen mit den Label-Optionen (Größe, Position, Autosize, Schriften, Farben, Enabled, Visible) bringt nix.

Testweise unter Linux ein neues Projekt mit einem neuen Form erstellt, TLabel drauf, alles OK. Funktionierendes TLabel über die Zwischenablage ins alte Projekt kopiert --> erscheint im Objekt-Inspektor, aber Beschriftung weg. Dem alten Projekt ein neues Form hinzugefügt, TLabel wieder einkopiert --> im neuen Form funktioniert es!

--> so wie es aussieht ist *irgendwas* im alten, auf Windows erstellten Formular böse, was Labels zum Verschwinden bringt. Ich habe alle Properties von Form "Böse" gegen "Gut" verglichen, sie sind alle gleich. Jetzt bin ich einigermaßen ratlos ... das Problem scheint am Form zu liegen, es "frisst" gleichsam Labels??

Hat jemand eine Idee? Das ist nicht das erste Projekt das ich zwischen Windows und Linux hin und her schubse, bisher ist mir so ein Problem nicht begegnet. Ich verwende seit einigen Tagen Lazarus 2.2.0RC2.
2021-12-08 17_41_05-Debian 10.8 Buster - VMware Workstation.png
2021-12-08 17_41_05-Debian 10.8 Buster - VMware Workstation.png (95.69 KiB) 2213 mal betrachtet
2021-12-08 17_46_47-Debian 10.8 Buster - VMware Workstation.png
2021-12-08 17_46_47-Debian 10.8 Buster - VMware Workstation.png (34.57 KiB) 2210 mal betrachtet
Armin.

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

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von theo »

Nie gesehen.
Ist das nur in der IDE so, oder auch im kompilierten Programm?
Ist das auch mit Qt so?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von af0815 »

Grundlegend ist mir sowas nicht bekannt und ist bin auch ein Grenzgänger zwischen den Welten.

Ich würde mal das Projekt auf Linux bringen, dann verschwindet das Label - dann die lfm wegkopieren. Dann das Label löschen und wieder einfügen. Dann die beiden lfm mit diff ansehen. Irgendwas muss da ja unterschiedlich sein. Die lfm sind ja auch nur Textdateien, damit kann man die auch super mit Diff vom Git vergleichen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von six1 »

Hast du mal probiert, den ParentFont vom Label abzuschalten?
Gruß, Michael

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von Nimral »

Ich habs gestern Nacht gefunden. Allerdings heute vor Abend keine Zeit es mit Democode nachzuvollziehen, also ist es erst mal ein "Gerücht".

Über dem Label (aber auch überallen anderen Controls) lag ein (leeres) Align=alClient TFrame. Unter Windows stört es so wenig dass ich seine Anwesenheit glatt nicht beachtet hatte. Unter Linux ist das wohl ein wenig anders, es scheint so, dass dort alle Controls durch das (leere) TFrame durchscheinen, außer den TLabels und TLabeledEdits. Wobei das Form sehr wenige Controls drauf hatte, nur Basics, also TButton, TMemo und TSpinEdit. Ich kann also nicht sagen, ob es auch noch andere Controls gäbe, die sich unter WIndows und Linux anders verhalten wenn sie hinter einem Frame zu liegen kommen.

Im Moment ist alles gut, hab aber heute Termindruck und vor dem Abend keine Zeit, das Szenario nochmal als Democode aufzubauen und mein "Gerücht" zu prüfen.

HG, Armin.

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von Nimral »

af0815 hat geschrieben:
Do 9. Dez 2021, 10:36
Ich würde mal das Projekt auf Linux bringen, dann verschwindet das Label - dann die lfm wegkopieren. Dann das Label löschen und wieder einfügen. Dann die beiden lfm mit diff ansehen. Irgendwas muss da ja unterschiedlich sein. Die lfm sind ja auch nur Textdateien, damit kann man die auch super mit Diff vom Git vergleichen.
Ich habs so ähnlich gelöst. Ein neues Form gemacht, dann Control für Control über die Zwischenablage kopiert, gesehen dass es funzt und danach die lfm verglichen. Ich seh dass ich heute Abend eine abgespeckte Demo baue, dann können wir entscheiden, ob es nachvollziehbar und einen Bugeiontrag wert ist.

Armin.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von af0815 »

Das mit dem Durchscheinen kann auch noch auf Ebene des Widgetsets Probleme machen. Ich vermeide so etwas. Und Frames sind sowie eine sehr Interessante Sache, besonders wenn man dort in die Tiefe gehen (muss) darf. Deswegen verwende ich meist ein Panel als 'Hintergrund' für meine dynamischen Frames. Damit ist das Layout auch ohne Frame einmal fix. Zur Laufzeit wird einfach das Frame in das Panel eingebracht und kann sich dort an den Platz im Panel orientieren. Damit verrutscht mir auch nicht so leicht das Desgin. Auch zwischen Windows/Linux/RasBian gibt es so die geringsten Trouble.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Sieben
Beiträge: 202
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von Sieben »

Hast du auch mal mit der Z-Order gespielt - Kontextmenu im Form-Designer?

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von Nimral »

Nein, das Frame war ja sozusagen auch keine Absicht.

Am Ende ist das Problem erst durch die Abweichung des Verhaltens von Windows und Linux aufgefallen, sowie durch eine gewisse Inkonsistenz unter Linux: entweder sollte das Frame alle Controls verdecken, oder alle durchlassen (wie unter Windows), aber nur die Labels ausknipsen ... das ist wohl kaum Absicht. Daher würde die Z-Order ja auch keinen EInfluss haben dürfen, da sie für alle Controls eines Forms gleichermaßen gilt und nicht nur für Labels.

Ich hab meine Telkos gleich mal durch, dann versuche ich, eine Codedemo zu bauen, dann diskutiert es sich besser.

Armin

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von fliegermichl »

Doch ich denke schon, daß die Z-Order damit zu tun hat.
Wenn zuerst die Labels auf dem Formular waren und dann der Frame dazukam, verdeckt er die Labels.
Ist es umgekehrt, verdeckt er sie nicht.

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von Nimral »

Also hier das Testprojektchen.
2021-12-09 20_56_02-Debian 10.8 Buster - VMware Workstation.png
2021-12-09 20_56_02-Debian 10.8 Buster - VMware Workstation.png (21.22 KiB) 2032 mal betrachtet
Links WIndows, rechts Linux.

Das Problem ist im Design- und im Run Modus zu sehen.

Folgendes hab ich noch versucht, hat aber nichts geändert:

- Frame-Color auf clNone gesetzt
- Frame Z-Order "Move to Back"
- Label Z-Order "Move to Front"

Witzig wird es, wenn ich das Frame nur bis zur Fenstermitte reichen lasse. Labels werden dann - unabhängig von der Z-Order - immer verborgen, andere Controls nicht. Beim LabeledEdit gerät das System in Gewissensnot: das Label wird verdeckt, das Eingabefeld nicht. Hier sehe ich die zweite Inkonsistenz im Vergleich mit Windows.
2021-12-09 21_02_03-Debian 10.8 Buster - VMware Workstation.png
2021-12-09 21_02_03-Debian 10.8 Buster - VMware Workstation.png (10.74 KiB) 2032 mal betrachtet
HG, Armin.
Dateianhänge
FrameVisibilityTest.zip
(105.73 KiB) 90-mal heruntergeladen

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TLabel und TLabeledEdit ohne Schrift unter Linux

Beitrag von wp_xyz »

Bei mir unter Windows verhält sich dein Testprogramm zunächstmal wie von dir beschrieben. Wenn ich aber einmal die Color-Eigenschaft des Frame verändert habe, wird das Label (das übrigens ein TGraphicControl ist und daher nicht der Z-Reihenfolge unterliegt) vom Frame überdeckt. Beim Ändern von Color wird ParentBackground des Frame auf false gesetzt. Erst wenn ich dieses auf den Defaultwert true zurücksetze, wird das Label wieder sichtbar.

Unter Linux dagegen hat der Wert von ParentBackground in dem Beispiel keinen Effekt, es gilt immer: Parentbackground = false. Ob es sich dabei um eine widgetset-abhängige Einschränkung handelt, oder um eine fehlende Implementierung des Parentbackground-Verhaltens, kann ich nicht beurteilen. Ich denke, es ist sinnvoll, das als Bug zu melden, damit die gtk2-qt4/5-Spezialisten darauf aufmerksam gemacht werden.

Antworten