Lazarus unter Linux, TComboBox

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Lazarus unter Linux, TComboBox

Beitrag von theo »

@mse: Schönes Beispiel.
Wenn ich deine Dateiliste anschaue, kriege ich Kopfschmerzen, während ich die Taskleiste ganz ruhig lesen kann.

Wenn du deine MSEIde nicht nur für dich selber, sondern auch für andere User entwickelst, solltest du dich vllt. mal mit gewissen Erkenntnissen im Bereich TypoErgonomie vertraut machen.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus unter Linux, TComboBox

Beitrag von mse »

theo hat geschrieben:@mse: Schönes Beispiel.
Wenn ich deine Dateiliste anschaue, kriege ich Kopfschmerzen, während ich die Taskleiste ganz ruhig lesen kann.

Wenn du deine MSEIde nicht nur für dich selber, sondern auch für andere User entwickelst, solltest du dich vllt. mal mit gewissen Erkenntnissen im Bereich TypoErgonomie vertraut machen.

Du meinst die Dateiauswahl im MSEide Source Editor? Das geht so:
RightClick 'Select Page' oder Ctrl+E dann erscheint folgendes Fenster, worin die Dateien alphabetisch geordnet sind, zur Dateiauswahl:
auswahl.png

Noch nicht geöffnete Dateien erreicht man mit dem 'open' button.
Doppelklick auf einen Tab verschiebt ihn an den Beginn, drag-drop funktioniert auch. So sind die gerade im Gebrauch stehenden Dateien zuoberst im TabWidget versammelt. Geänderte Dateien werden durch '*' am Anfang markiert und sind dadurch sofort ersichtlich. Dateien werden übrigens erst bei Bedarf geladen, es ist kein Problem gleichzeitig hunderte von Dateien "geöffnet" zu halten.

Martin

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus unter Linux, TComboBox

Beitrag von mse »

theo hat geschrieben:@mse: Schönes Beispiel.
Wenn ich deine Dateiliste anschaue, kriege ich Kopfschmerzen, während ich die Taskleiste ganz ruhig lesen kann.

Ruhig lesen? Na ja...
taskleiste.png

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

Re: Lazarus unter Linux, TComboBox

Beitrag von theo »

mse hat geschrieben:
theo hat geschrieben:@mse: Schönes Beispiel.
Wenn ich deine Dateiliste anschaue, kriege ich Kopfschmerzen, während ich die Taskleiste ganz ruhig lesen kann.

Ruhig lesen? Na ja...
taskleiste.png


Nein, ich meinte die Liste die da neben deiner aufpopt:
download/file.php?id=1118&mode=view

Wenn du nur einsehen würdest, dass du für's Visuelle keinen Sinn hast, könntest du mal einen Grafiker einladen, der dir auf die Sprünge hilft.
Aber so rede ich gegen eine Wand. Es ist wie mit einem Farbenblinden über Farbnuancen sprechen zu wollen.
Du bist ein hervorragender Programmierer / Entwickler, aber man kann doch nicht alles können.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lazarus unter Linux, TComboBox

Beitrag von mse »

theo hat geschrieben:Nein, ich meinte die Liste die da neben deiner aufpopt:

Das habe ich schon verstanden.
Die Liste poppt übrigens nicht auf, das sind die Tabs des Source Editor, die sind rechts angeordnet, da dort viel mehr Text Platz hat und die wichtige Texthöhe im Editor nicht beeinträchtigt wird. Zudem sind sie in der Nähe des vertikalen Scrollbalkens und in der gleichen Richtung angeordnet und lassen sich durch bündig angeordnete Wortanfänge leichter überfliegen.
Mein Beispiel zeigt, was zum Lesen bei luftigem Aufbau noch übrig bleibt. Und optischer Eindruck ist nur ein Aspekt des UI, Funktionalität ist ebenso wichtig und manchmal muss sich die Optik - speziell bei Werkzeugen für Profis - unterordnen. Ich denke aber wir sollten die Diskussion hier beenden oder an einen anderen Ort verschieben.

Martin
Zuletzt geändert von mse am Di 14. Sep 2010, 15:46, insgesamt 1-mal geändert.

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus unter Linux, TComboBox

Beitrag von MmVisual »

Mit den Tipps von theo bekomme ich ja das "Luftige" in meiner EXE in Griff.

Ich hatte hier noch eine Frage Offen, wegen Aussehen TComboBox und TDBComboBox:
viewtopic.php?p=40665#p40665

Nicht dass diese untergeht, in der ganzen Luft ;)

Vielecht kann mir jemand auf die Sprünge helfen wer/was den Rahmen der ComboBox malt?

Vielen Dank, Gruß Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

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

Re: Lazarus unter Linux, TComboBox

Beitrag von theo »

MmVisual hat geschrieben:Ich hatte hier noch eine Frage Offen, wegen Aussehen TComboBox und TDBComboBox:
viewtopic.php?p=40665#p40665


K.A. hast du mal versucht, das Rect welches du Fillst im geschlossenen Zustand zu erweitern?

Generell halte ich es für besser, ein Layout so zu machen, dass es sich den Komponentengrössen anpassen kann anstatt die Komponenten in ein Windows-Layout zu zwängen.
http://wiki.lazarus.freepascal.org/Auto ... out#Layout

Gerade Cross Platform, mit unterschiedlichen Themes und unterschiedlichen Fonts erspart man sich da einige Überraschungen.
Zuletzt geändert von theo am Di 14. Sep 2010, 13:53, insgesamt 1-mal geändert.

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

Re: Lazarus unter Linux, TComboBox

Beitrag von theo »

mse hat geschrieben:Und optischer Eindruck ist nur ein Aspekt des UI Funktionalität ist ebenso wichtig und manchmal muss sich die Optik - speziell bei Werkzeugen für Profis - unterordnen.


Man kann man sich streiten, ob ein solches Werkzeug hübsch sein muss, aber bei Ergonomie hört der Spass auf.
Die Textabstände in MSEIde sind zu eng und schmerzen im Auge beim Betrachten. Das kann man nicht wegdiskutieren.
Ausserdem sieht das Ganze auf den ersten Blick irgendwie "kaputt" aus, als ob die Fonts spinnen würden oder so. ;-)

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus unter Linux, TComboBox

Beitrag von MmVisual »

@theo
Unter Windows geht es ja richtig, nur unter Linux wird die TComboBox mit einem Farbverlauf gezeichnet, die TDBComboBox einfach nur weiß.

Das Item in der Mitte kommt von meiner Zeichenroutine, daher ist der Hintergrund weiß.

Jetzt wäre es schön, ich könnte dem TComboBox-Control bei bringen, dass er innen in der Auffüllung keinen Farbverlauf malt, so wie in der TDBComboBox.

Das hat nichts mit dem OnDrawItem zu tun, denn der ganze Rahmen mit den Dreiek nach Unten wird doch wo anders gemalt.

Weiß jemand wie das zusammen hängt?
Dateianhänge
TCB-ItemHeight4.png
TCB-ItemHeight4.png (4.79 KiB) 2373 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Lazarus unter Linux, TComboBox

Beitrag von Teekeks »

@MmVisual:
Stell mal ItemHeight auf die selbe Größe wie Hight.
Vl. liegt es daran?

@mse: Du kannst die ganzen Animationen auch abschalten.
Und das nur so wenige Icons auf den Bildschirm passen, liegt an deinem Theme.
Ich kann da Oxygen empfehlen.

Gruß Teekeks

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus unter Linux, TComboBox

Beitrag von MmVisual »

Tatsächliche Größe des Rechtecks ist := Eigenschaft ItemHeight + Canvas.TextHeight() !!!
Also wenn ItemHeight = 0 dann ist das Item Canvas.TextHeight() hoch.

Ich hab mal ein neues Projekt begonnen, ohne Quellcode. (Siehe Bild)

Sobald ich der TComboBox die Eigenschaft Style=csDropDownList setze, dann wird die Box mit einem Farbverlauf anstatt weiß gezeichnet.

Ich finde das ist enorm verwirrend wenn einmal die Combobox weiß und einmal grau gemalt wird. Bei der grauen hat man das Gefühl die sein inaktiv.

Aber raus gefunden wo dieser Farbverlauf gemalt wird hab ich immer noch nicht :(
Dateianhänge
TCB-ItemHeight5.png
TCB-ItemHeight5.png (10.67 KiB) 2367 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Lazarus unter Linux, TComboBox

Beitrag von Socke »

Um Controls selbst so zu zeichnen, wie es das Widgetset macht, muss man auf das Widgetset zurückgreifen - klingt logisch, ist aber nicht so.
Füge der Uses-Klauses die Unit "Themes" hinzu.
Danach kannst du in drei Zeilen alles machen:

Code: Alles auswählen

r := ClientRect;  // stimmt wahrscheinlich nicht, musst du also noch irgendwie richtig rechen
  Details := ThemeServices.GetElementDetails()// hier fehlt noch ein Parameter
  ThemeServices.DrawElement(Canvas.Handle,Details,r);

Die Frage ist nur, welchen Parameter du bei Zeile Zwei übergeben musst und ob dieser bereits für alle/das gewünschte Widgetset implementiert ist. Ich tippe auf ein Element aus "TThemedComboBox".
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Lazarus unter Linux, TComboBox

Beitrag von Teekeks »

Bei csDropDownList ist es Absicht das du nichts Schreiben kannst → Das "Editfeld" auf der Komponente verschwindet.
Ergo wird nur noch der Hintergrund mit dem Text gezeichnet.

Wenn du das anders haben möchtet, solltest du nicht csDropDownList nehmen.

Gruß Teekeks

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus unter Linux, TComboBox

Beitrag von MmVisual »

Gibt es da eine Möglichkeit auf das Editfeld zu zugreifen?
Dann könnte ich es auf ReadOnly := True setzen.

Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Lazarus unter Linux, TComboBox

Beitrag von Teekeks »

Ich sehe gerade das wenn man csDropDown nimmt und readonly auf true setzt der das automatisch auf csDropDownList setzt.

Aber das ist das Standard-Aussehen von GTK und sollte Imho auch nicht unbedingt geändert werden.

Warum soll das denn nicht grau sein?

Antworten