Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#13

AW: Was passiert, wenn Schriftart nicht vorhanden ist?

  Alt 4. Apr 2014, 11:54
Hallo,

ich habe die Frage ja schon an anderer Stelle gestellt, leider ohne Antwort. Wenn ich mein Projekt auf die Schrift "Segoe UI 9 pt" umstelle und auf dem Zielsystem diese Schriftart nicht existiert, was passiert dann? Gibt es einen "Plan B", also sowas wie "Screen.AltFont := "?
Jajn. Ich hab das mal schon durchgespielt, weil ich es auch brauchte. Die Standardschrift ist "MS Sans Serif". Gibst du den Namen einer Schrift die es nicht gibt, wird erst einmal die letzte gültige Schrift genommen.

Allerdings mit diesem Verhalten (zumindest bei mir bisher): ist am Anfang "MS Sans Serif" eingestellt und du gibst "" ein, wird "MS Sans Serif" genommen. Gibst du "Blabla" (also eine Schrift die es nicht gibt) wird, zumindest bei XP, Tahoma genommen. Das ist die Standardschrift die eingestellt ist. Ist eine andere eingestellt, wird vermutlich die genommen. Gibst du noch mal "", bleibt es bei Tahoma. Gibt man nach Tahoma "Times New Roman" ein und dann "Blabla", bleibt Times New Roman", als letzte funktionierende Schrift.

Willst du die Möglichkeiten von HTML, also Alternativschriften, ich benutze schon lange (gelegentlich in abgewandelter Form) so eine Prozedur:
Delphi-Quellcode:
procedure SetFont(Font: TFont);
const
  FontList: array[0..3] of String = ('Segoe UI', 'Courier New', 'Times New Roman', 'Arial1');
var
  i: Integer;
begin
  for i := Low(FontList) to High(FontList) do
    if Screen.Fonts.IndexOf(FontList[i]) > -1 then
    begin
      Font.Name := FontList[i];
      Break;
    end;
end;
Ist die erste Schrift nicht vorhanden, wird die zweite genommen, usw.
  Mit Zitat antworten Zitat