Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schriftart aus *.ttf verwenden (https://www.delphipraxis.net/1624-schriftart-aus-%2A-ttf-verwenden.html)

nailor 14. Dez 2002 14:48


Schriftart aus *.ttf verwenden
 
Man kann ja bei Delphi mit AnyObject.Font dem Objekt eine Schriftart zuweisen. Aber die muss dann bei Windows "installiert" sein. Kann man irgendwie auch ein *.ttf angeben aus der Delphi die Schriftart nimmt? Oder eine ttf in das Project einbinden. Irgendwas, damit das programm egal was für Fonts auf dem Rechner sind immer gleich aussieht???

sakura 14. Dez 2002 16:44

Leider geht das nicht, da musst Du den Umweg über die Schriftinstallation gehen. Zumindest bin ich mir keiner anderen Möglichkeit bewusst.

nailor 15. Dez 2002 11:02

Wie macht mann das dann? Einfach die ttf mitliefern und in den Fonts-Ordner kopieren/verschieben?

CalganX 15. Dez 2002 11:06

Das wäre eine Möglichkeit. Aber du kannst eine Schriftart auch als Ressource speichern und dann laden. Den Beitrag dazu habe ich nicht gefunden, aber such mal bei http://www.ensacom.de nach "Schrift"...

Chris

nailor 15. Dez 2002 11:31

nach schrift suchen bringt nix :(

mann muss nach font suchen :wink:

Das hier ist es

nailor 15. Dez 2002 12:44

//Textdatei mit folgendem Inhalt anlegen
MY_FONT SMILLY "SMILLY.ttf"

//Datei MyFont.rc speichern diese Datei mit folgendem Befehl kompilieren
BRCC32 MyFont.rc

Der Sourcecode der jetzt folgt ist ja OK, aber das was ich davor machen soll kapier ich nicht!!!

Delphi-Quellcode:
implementation


{$R *.dfm}
{$R MyFont.res} //das einfügen
 

procedure TForm1.FormCreate(Sender: TObject);
var
 res : TResourceStream;
begin
 res := TResourceStream.Create(hInstance, 'My_FONT', Pchar('SMILLY'));
 res.SaveToFile('SMILLY.ttf');
 res.Free;
 AddFontResource(PChar('SMILLY.ttf'));
 SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
 

//So wird die Fontdatei aus der Resource aufgerufen
procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Font.Name := 'SMILLY';
end;

Christian Seehase 15. Dez 2002 14:49

Moin Nailor,

falls ich Dich richtig verstanden habe:

Erstelle eine Datei mit dem Namen MyFont.rc, z.B. mit Notepad.
Da hinein kommt die Zeile

MY_FONT SMILLY "SMILLY.TTF"

MY_FONT ist der Name der Resource die geladen werden soll,
SMILLY ist der (selbstdefinierte) Resourcentyp und
"SMILLY.TTF" ist der Name der Fontdatei.

Wird der Name ohne Pfad angegeben, so muss sich die Datei im gleichen Verzeichnis befinden, wie die .RC Datei.

Dateien vom Typ .RC sind, sozusagen, Resourcen Sourcecode Dateien.

Du kannst jetzt versuchen, statt

{$R MyFont.res}

mal

{$R MyFont.RC}

anzugeben, damit die Resourcen direkt eincompiliert werden (was allerdings nicht immer funktioniert), oder mit Hilfe des Borland Resourcencompilers BRCC32.EXE (zu finden im Delphi\Bin Verzeichnis) aus der RC Datei eine RES Datei erzeugen.

Wichtig: BRCC32 ist ein Kommandozeilen Programm.

Wird kein Ausgabedateiname angegeben, so bekommt die Compilierte Resourcendatei (RES) den Namen der Sourcedatei (RC).

War's das, was Du noch wissen wolltest?

nailor 15. Dez 2002 17:25

ja, das wars. ich hatte keine ahnung womit ich versuchen sollte so eine textdatei zu kompilieren. nachher mal testen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr.

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