If FontDialog.execute then
begin
MyFont := FontDialog.font;
MyFont.style := MyFont.style + [fsUndeline];
MyFont.color := clRed;
end;
Der doppelte Blödsinn liegt darin, dass es mit der Font.color unter Linux keine Probleme gibt, während einige Komponenten unter Windows daruaf bestehen, dass der Font schwarz bleibt.
Auf Linux kennt der QT Fontdialog strikeout und underline, Farbe aber auch nicht.
Wenn du das überall haben willst, musst du selber einen Dialog basteln.
Orientieren kannst du dich am Beispielprojekt "fontenum".
Also haben es sich die Entwickler von Lazarus einfach gemacht und den Fontdialog des OS/Widgetsets genommen (wegen Delphi kompatibilität), anstatt einen eigenen zu entwickeln (Den man mit {IFDEF xxx} hätte versehen können um doch noch OS/Widgetset spezifisches auszublenden). Oder man könnte einen TFontDialogEx hinzufügen um kompatible zu Delphi zu bleiben.
Also haben es sich die Entwickler von Lazarus einfach gemacht und den Fontdialog des OS/Widgetsets genommen (wegen Delphi kompatibilität), anstatt einen eigenen zu entwickeln
Nein, das hat nichts mit Delphi-Kompatibilität zu tun, sondern repräsentiert die Grundidee hinter der LCL: Man nehme die Funktionen des Widgetsets/Betriebssystems und schreibe einen Wrapper um sie, so dass man sie mit denselben LCL-Routinen aufrufen kann. Dadurch sieht jedes Programm auf jedem Widgetset wie die anderen nativen Programme aus, obwohl es (im Idealfall aus demselben Quellcode erzeugt wurde). Einen eigenen Fontdialog zu schreiben hätte auch den Nachteil, dass man mit jedem Update des Widgetset evtl. Änderungen machen und pflegen muss (da das Programm ja auf verschiedenen Versionen desselben OS laufen soll).
Also, wenn man per Code Text Formatierungen einstellen kann zb unter gtk/qt dann sollte es der Dialog auch können.
Was diese Dialoge anzeigen, ist nicht in der Verantwortung von Lazarus.
Der GtkFontSelectionDialog sieht nun einmal so aus: https://developer.gnome.org/gtk2/stable ... ialog.html
und dient nur zur Auswahl des Font-Typs im engeren Sinne.
Unterstreichungen, Farben etc. gehören da nicht dazu.