Lazarus unter Linux, TComboBox
Re: Lazarus unter Linux, TComboBox
@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.
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.
-
- 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
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:
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
-
- 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
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...
Re: Lazarus unter Linux, TComboBox
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...
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.
-
- 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
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.
-
- 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
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.
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
Re: Lazarus unter Linux, TComboBox
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.
Re: Lazarus unter Linux, TComboBox
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.
-
- 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
@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?
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 (4.79 KiB) 2373 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- 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
@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
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
-
- 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
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
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 (10.67 KiB) 2367 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- 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
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:
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".
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
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
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
Ergo wird nur noch der Hintergrund mit dem Text gezeichnet.
Wenn du das anders haben möchtet, solltest du nicht csDropDownList nehmen.
Gruß Teekeks
-
- 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
Gibt es da eine Möglichkeit auf das Editfeld zu zugreifen?
Dann könnte ich es auf ReadOnly := True setzen.
Gruß Markus
Dann könnte ich es auf ReadOnly := True setzen.
Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- 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
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?
Aber das ist das Standard-Aussehen von GTK und sollte Imho auch nicht unbedingt geändert werden.
Warum soll das denn nicht grau sein?