Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Fontname und Fontsize eines TPRLabel ermitteln (https://www.delphipraxis.net/99576-fontname-und-fontsize-eines-tprlabel-ermitteln.html)

torud 14. Sep 2007 09:47


Fontname und Fontsize eines TPRLabel ermitteln
 
Hallo Wissende,

ich grübel derzeit, wie ich die Schriftgrösse und Schriftartname eines TPRLabel in meiner Toolbar schreiben lassen kann, um dies anschliessen modifizieren zu können.

Dies geht nicht, weil der Fontname kein String ist, sondern vom Typ TPRFontname. Wie kann ich das wandel, dass es passt?
Delphi-Quellcode:
cmb_fonts.Text      := (Form1.FormDesigner1.Control as TPRLabel).FontName);
Die geht leider nicht, weil die Fontsize der Komponente vom Typ Singel ist...
Delphi-Quellcode:
btn_fontsize.Caption := inttostr((Form1.FormDesigner1.Control as TPRLabel).fontsize);
Ich frage mich derzeit, warum die Entwickler das so gelöst haben und nicht den Fontnamen als String und die Schriftgrösse als integer deklariert haben...Hat das einen Grund?

DeddyH 14. Sep 2007 11:03

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Für den Fontname kannst Du eine case-Unterscheidung verwenden und die FontSize kannst Du mit trunc auf integer herunterrunden.

torud 14. Sep 2007 11:16

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Moin Deddy,

das mit der trunc klappt wunderbar, aber wie meinst Du das mit der Case-Anweisung? Also ich weiss schon, was ne Case ist, aber wie woll ich da was wie umwandeln. Das ist mir nicht ganz klar, denn ich bekomme halt keinen String zurück...Gibst Du mir bitte noch nen Tipp, wie Du das meinst???

DeddyH 14. Sep 2007 12:02

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Moin Tom, ganz einfach:
Delphi-Quellcode:
case PRLabel.Fontname of
  fnFixedWidth: cmb_fonts.Text := 'Fixed Width';
  fnArial    : cmb_fonts.Text := 'Arial';
  fnTimesRoman: cmb_fonts.Text := 'Times Roman';
end;

torud 14. Sep 2007 12:14

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Danke Dir für den Code. So funzt es auf jeden Fall. Etwas enttäuschend finde ich den scheinbaren Zustand, dass es NUR 3 Schriftarten zu geben scheint...

DeddyH 14. Sep 2007 12:16

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Da kann ich nichts zu sagen, vielleicht ist die Doku, die ich mir ergoogelt habe, auch veraltet. Ein Blick in den OI sollte da aber Klarheit schaffen ;)

torud 14. Sep 2007 12:36

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Jo, da stehen nur die 3 Schriftarten als Vorgabe drin. Das ist natürlich a bisserl doof. Könnte ich diese Eigenschaft nicht "einfach" überschreiben und mit den Fonts des Screens füllen?

DeddyH 14. Sep 2007 12:38

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Ich glaube nicht, dass die Kompo damit zurechtkäme.

torud 14. Sep 2007 12:45

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Schade, aber ok. Wäre halt schön gewesen, wenn man dem Kunden hätte mehr bieten können als nur 3 Schriften. Naja für den Anfang wirds wohl erstmal so gehen. Ich schau mich mal um, ob es noch andere Alternativen gibt...

marabu 14. Sep 2007 13:13

Re: Fontname und Fontsize eines TPRLabel ermitteln
 
Hallo Tom,

der Datentyp Single für die FontSize rührt daher, dass es hier um PostScript Fonts geht - die Größe kannst du dort sehr fein stufig setzen. Wenn du willst, dann kannst du natürlich den Datentyp TPRFontName und das zugehörige Array ITEM_FONT_NAMES erweitern, die Quellen sind ja vorhanden. Dein (sicher nicht unlösbares) Problem dürften die Laufweiten-Tabellen der neuen Fonts sein, die du in die Unit PdfFonts einarbeiten musst.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr.
Seite 1 von 2  1 2      

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