Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schriftart mitliefern? (https://www.delphipraxis.net/60396-schriftart-mitliefern.html)

TheAn00bis 6. Jan 2006 11:22


Schriftart mitliefern?
 
Hey,

ich will einem dynamisch erstellten Editfeld eine nicht-standard Schriftart geben.
D. h. eine, die höchstwahrscheinlich nicht auf den Rechnern installiert ist, auf
denen das Programm ausgeführt wird. Wie liefere ich die jetzt mit?

Suche ergibt entweder nichts oder ich suche falsch...

Aenogym 6. Jan 2006 11:24

Re: Schriftart mitliefern?
 
hi,

einfach die schriftartendatei mitliefern und bei bedarf in den "fonts"-ordner kopieren ;) (edit: aber urheberrecht beachten!)
ob man schriftarten nutzen kann, ohne sie zu installieren, kann ich dir leider nicht sagen.

aeno

Airblader 6. Jan 2006 11:26

Re: Schriftart mitliefern?
 
Ich weiß nicht, ob ich das noch richtig im Kopf habe, aber reicht es nicht, die Font im selben Ordner wie die Echse liegen zu haben? :gruebel:

air

TheAn00bis 6. Jan 2006 11:33

Re: Schriftart mitliefern?
 
Zitat:

Zitat von Aenogym
hi,

einfach die schriftartendatei mitliefern und bei bedarf in den "fonts"-ordner kopieren ;) (edit: aber urheberrecht beachten!)
ob man schriftarten nutzen kann, ohne sie zu installieren, kann ich dir leider nicht sagen.

aeno

Fände ich unschön, da es mir als Anwender nicht gefallen würde, wenn da jemand einfach neue Schriftarten hinzufügen würde.

Zitat:

Zitat von Airblader
Ich weiß nicht, ob ich das noch richtig im Kopf habe, aber reicht es nicht, die Font im selben Ordner wie die Echse liegen zu haben? :gruebel:

air

Nein, gerade eben ausprobiert. Wie sieht es mit Ressource-Dateien aus?

Edit: Hab doch einen Beitrag mit folgendem ink gefunden: http://www.ensacom.de/index.php?s=sd...jleebb8o3ri6d6

Hat sich also erledigt.

TheAn00bis 6. Jan 2006 12:14

Re: Schriftart mitliefern?
 
Eine Frage hätte ich doch noch:

Wenn ich jetzt statt einer Schriftart mehrere einfügen will, kann ich dann in die myfont.rc einfach mehrere Schriftarten reinschreiben? Also z.B.:

Zitat:

MY_FONT fontname1 "fontname1.ttf"
MY_FONT1 fontname2 "fontname2.TTF"
MY_FONT2 fontname3 "fontname3.TTF"
MY_FONT3 fontname4 "fontname4.ttf"

Die brrcc32.exe hat beim compilieren keinen Fehler gemeldet, allerdings weiß ich nicht, was ich jetzt statt:

Delphi-Quellcode:
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;
[von hier]

schreiben muss.

Muss ich das dann 4mal aufrufen, mit

'My_Font' ersetzt durch MyFont1, MyFont2, MyFont3 und Myfont4? (und natürlich den Namen noch...)

?

Oder brauche ich für jede Schriftart eine eigene Datei?

ManuMF 6. Jan 2006 17:46

Re: Schriftart mitliefern?
 
Mit einer Schleife.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Res : TResourceStream;
  f : Cardinal;
begin
  for f := 1 to 4 do
  begin
    Res := TResourceStream.Create(hInstance, 'ResFont' + IntToStr(f), PChar('RF' + IntToStr(f)));
    Res.SaveToFile('TmpFont' + IntToStr(f)' + .ttf');
    FreeAndNil(Res);
    AddFontResource(PChar('TmpFont' + IntToStr(f) + '.ttf'));
  end;
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
Zitat:

ResFont1 RF1 "font1.ttf"
ResFont2 RF2 "font2.ttf"
ResFont3 RF3 "font3.ttf"
ResFont4 RF4 "font4.ttf"
So sollte die Ressourcen-Datei aussehen. Nur "fontname" sollte angepasst werden, damit es funktioniert. Ein Tipp: Es reicht, diese Datei (mit der Endung .rc) zum Projekt hinzuzufügen, das Kompilieren übernimmt Delphi automatisch! Dann wird auch die Zeile "{$R MyFont.res} //das einfügen" nicht benötigt.

Beim Beenden:
Delphi-Quellcode:
for f := 1 to 4 do
begin
  RemoveFontResource(PChar('TmpFont' + IntToStr(f) + '.ttf'));
end;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
Gruß,
ManuMF

TheAn00bis 7. Jan 2006 09:56

Re: Schriftart mitliefern?
 
Vielen Dank, hat funktioniert! :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 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