Warum werden komprimierte Schriftarten in FireMonkey nicht korrekt angezeigt?

8

(Und was kann ich dagegen tun?)

Wenn ich zwei Beschriftungen in VCL anlege und einen für Arial und einen anderen Arial Narrow setze, sehe ich ein erwartetes Ergebnis.

Wenn ich das gleiche in Firemonkey tue, wird das zweite Label in Arial Narrow nicht angezeigt. Es wird sogar nicht in Arial angezeigt (Punkte auf i sind rund, Form von 's' ist alles falsch usw.).

Weiß jemand, warum FM (ich habe das mit Delphi XE4 getestet) die Schrift nicht richtig anzeigt? Kann ich irgendetwas dagegen tun?

Quelle für das VCL-Formular:

%Vor%

Quelle für das FM-Formular:

%Vor%     
gabr 17.07.2013, 13:25
quelle

1 Antwort

6

Dies scheint nur Schriftarten innerhalb von Familien zu betreffen - wenn die Schrift nicht im Schriftarten-Ordner unter ihrem eigenen Familiennamen existiert. Arial Narrow zum Beispiel ist eine Schriftart innerhalb der Schriftartdatei "Arial" (sie existiert innerhalb einer Familie und ist für sich genommen keine Familie für sich).

Normalerweise würde eine Schriftfamilie nur die vier Stile enthalten

Arial (enthält naiv)

  • Arial Regulär
  • Arial Fett
  • Arial Kursiv
  • Arial Bold Italic

"Arial Narrow" existiert jedoch innerhalb der "Arial" -Familie neben den Standardstilen - zB:

Arial (enthält eigentlich)

  • Arial Regulär
  • Arial Fett
  • Arial Kursiv
  • Arial Bold Italic
  • Arial schmal
  • Arial schmal fett
  • Arial Schmal Kursiv
  • Arial schmal fett Kursiv
  • Arial Black

Es scheint, dass FMX nur eine Ebene tiefer in einer bestimmten Schriftfamilie sucht und keine Stilvariante betrachtet, die von den strengen GDI + -Stildefinitionen abweicht (Regular, Fett, Kursiv, Fett Kursiv).

Dies wirkt sich auch auf Arial Black aus - andere Beispiele sind leicht zu finden, wenn Sie durch Ihren Schriftarten-Ordner laufen. Franklin Gothic Demi, Gill Sans Ultra Bold, etc ... alles, was dem obigen Muster folgt. Die Schrift scheint in der Standard-Segoe-Benutzeroberfläche wiedergegeben zu werden, wenn diese Schriftarten gefunden werden.

Eine Notlösung ist, Arial zu verwenden und die Eigenschaft Scale auf X=0.82 zu setzen - es ist nicht perfekt, aber es ist ziemlich nah an Arial Narrow.

Dies ist wahrscheinlich ein Fehler und sollte QC'd sein.

    
J... 18.07.2013, 13:03
quelle

Tags und Links