TFontDialog und fsUnderLine

Rund um die LCL und andere Komponenten
Antworten
Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

TFontDialog und fsUnderLine

Beitrag von Mathias »

Ein Label kann ich folgendermassen durchstreichen und unterstreichen.

Code: Alles auswählen

  Label1.Font.Style := [fsStrikeOut, fsUnderline];
Wieso wird mir diese Option im FontDialog nicht angeboten ?
Kann man irgendwo einstellen, das diese Optionen auch kommen ?

Nachtrag: Auch das Einstellen der Schriftfarbe fehlt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TFontDialog und fsUnderLine

Beitrag von sstvmaster »

Meinst du diesen Dialog?

Wenn ja dann wahrscheinlich nur Windows?
Dateianhänge
TFont.jpg
TFont.jpg (59.67 KiB) 2534 mal betrachtet
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TFontDialog und fsUnderLine

Beitrag von Mathias »

Dieser Dialog sieht anders aus, als meiner unter Linux.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TFontDialog und fsUnderLine

Beitrag von sstvmaster »

Schau mal hier, liegt auf jedenfall am Widgetset.

https://forum.lazarus.freepascal.org/in ... #msg304354
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: TFontDialog und fsUnderLine

Beitrag von Winni »

Hi!

Nix als Arbeit mit Linux:

Code: Alles auswählen

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.

M$ Logic ....

Winni

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

Re: TFontDialog und fsUnderLine

Beitrag von theo »

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".

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TFontDialog und fsUnderLine

Beitrag von sstvmaster »

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.

Nur so ein Gedanke der mir aufkam.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: TFontDialog und fsUnderLine

Beitrag von wp_xyz »

sstvmaster hat geschrieben:
Do 21. Mai 2020, 23:25
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).

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TFontDialog und fsUnderLine

Beitrag von sstvmaster »

Dann stellt sich mir aber die Frage, wieso kann Mathias dann per Code das machen?
Mathias hat geschrieben:
Do 21. Mai 2020, 13:37
Ein Label kann ich folgendermassen durchstreichen und unterstreichen.

Code: Alles auswählen

  Label1.Font.Style := [fsStrikeOut, fsUnderline];
Dann würde das, laut deiner Aussage gar nicht funtktionieren?
wp_xyz hat geschrieben:
Fr 22. Mai 2020, 00:58
Man nehme die Funktionen des Widgetsets/Betriebssystems und schreibe einen Wrapper um sie, so dass man sie mit denselben LCL-Routinen aufrufen kann.
Habe leider kein Linux oder MacOS hier, um mal zu probieren was man überhaupt mit einen Text unter den OS'es/Widgetsets machen kann.

Also, wenn man per Code Text Formatierungen einstellen kann zb unter gtk/qt dann sollte es der Dialog auch können.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: TFontDialog und fsUnderLine

Beitrag von theo »

sstvmaster hat geschrieben:
Fr 22. Mai 2020, 09:45
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.

Ein QFontDialog https://doc.qt.io/qt-5/qfontdialog.html#details kann etwas mehr, aber auch keine Farben.

Das kann man blöd oder richtig finden, ist aber nicht eine Entscheidung von Lazarus.

Sonst vielleicht das probieren: https://wiki.freepascal.org/ATExtendedDialogs (Auch über OPM installierbar)

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TFontDialog und fsUnderLine

Beitrag von Mathias »

So wie es aussieht, müsste man selbst einen Dialog Coden, wen man alles unterstützen will.

Eigentlich reicht der Dialog von Mint, da (momentan) SynEdit dies erweiterten Formatierungen nicht unterstützt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten