Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Firemonkey Schriftgröße 12 unter OSX (https://www.delphipraxis.net/182828-firemonkey-schriftgroesse-12-unter-osx.html)

Sunec 20. Nov 2014 12:07

Firemonkey Schriftgröße 12 unter OSX
 
Hallo,

ich möchte einen TText mit der Schriftgröße 12 in meinem Firemonkey Programm anzeigen.

Wenn ich das Projekt für Windows compile wird mir der TText korrekt mit der Schriftgröße 12 angezeigt.

Unter OSX hat dieser TText jedoch die Schriftgröße 13.

Gibt es eine Möglichkeit dies, ohne während der Runtime nachzuhelfen, zu realisieren?

Daniel 20. Nov 2014 14:43

AW: Firemonkey Schriftgröße 12 unter OSX
 
Liste der Anhänge anzeigen (Anzahl: 2)
Mit XE7 geht das. XE6 habe ich gerade nicht zu Hand.
Anhang 42178

Gibt es in XE6 die StyledSettings schon?
Anhang 42179

Sunec 20. Nov 2014 16:28

AW: Firemonkey Schriftgröße 12 unter OSX
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Daniel,

ja die StyledSettings gibt es schon.


Habe einen kleinen Testscreen gemacht in dem ich verschiedene Labels platziert habe.

In das Text property der Labels habe ich die Schriftgröße hineingeschrieben.

Anschließend folgende Procedure ausgeführt:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ComponentCount - 1 do
    if Components[i] is TLabel then
      TLabel(Components[i]).Text := TLabel(Components[i]).Text +  ' ' + FloatToStr(TLabel(Components[i]).TextSettings.Font.Size)
end;
Ergebnis in Bild 1.

Außerdem ist mir aufgefallen, dass Schriftgröße 12 automatisch in (Default) umbenannt wird (Bild 2).

Es freut mich aber, dass es in XE7 anscheinend geht. Ich werde mir mal die Demo von XE7 hierrunterladen und testen.

EDIT:

Habe noch ein Screen unter Windows angehängt. Gleicher Code - gleiches Programm.

Danke.


Edit:

Workaround für XE6 User:

Delphi-Quellcode:
procedure TForm1.OnPaint(Sender: TObject);
var
  Settings: ITextSettings;
  Instance: TComponent;
  i: integer;
begin

  for i := 0 to ComponentCount - 1 do
  begin
    Instance := Components[i];

    if IInterface(Instance).QueryInterface(ITextSettings, Settings) = S_OK then
    begin
      Settings.TextSettings.BeginUpdate;
      try
        Settings.DefaultTextSettings.Font.Size := 12;

      finally
        Settings.TextSettings.EndUpdate;
      end;
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz