| Autor |
Beitrag |
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Fr 05.01.07 08:53
Ich habe einen Font in eine Resource gepackt.
Muss ich nun immer bei Programmstart die Schrift aus der Resource in eine Datei kopieren und dann installieren oder kann man Schriften auch direkt aus der Resource installieren, wenn ja wie?
Danke!
und hier dsdt.info
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Zuletzt bearbeitet von Kroko am Fr 05.01.07 10:05, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 05.01.07 09:17
Ich weiß ja nicht, wie du die installierst. Installierst du die als Schriftart im System oder benutzt du die nur in deiner Anwendung?
Wenn du die im System installierst, dann wird das nur über eine Datei gehen. In der eigenen Anwendung könnte es auch andere Möglichkeiten geben, aber da muss ich mal suchen. Irgendwo hatte ich dazu mal was gelesen...
|
|
Kroko 
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Fr 05.01.07 10:02
nur in meiner Anwendung!
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 05.01.07 12:21
Ok, dann geht das mit AddFontMemResourceEx...
Ich hab mal ein Beispiel geschrieben. Obwohl mich etwas wundert, dass du die eine Funktion gefunden hast und nicht die andere. Die stehen in der MSDN-Referenz doch direkt beieinander...
Nein, mir ist klar, dass du dort nicht nachgesehen hast, das war ein Scherz.
Naja, jedenfalls hier das Beispiel als Exe:
www.buchmanager-berl...e=FontResExample.zip
Mirror:
www.sj-berlin.de/dow...2/FontResExample.zip
Und der Quelltext:
www.buchmanager-berl...ntResExample_src.zip
Mirror:
www.sj-berlin.de/dow...ntResExample_src.zip
|
|
Kroko 
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Fr 05.01.07 15:29
Danke!
Für alle die später kommen hier die komplette Unit:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80:
| unit tdFont;
interface
function AddFont (const AFontFileName: String): Boolean;
function DeleteFont (const AFontFileName: string): Boolean;
type TFontResBuffer = record Buffer: PChar; Fraktur: THandle; Size: Integer; end;
function AddFontFromRes (const ResName: PChar; var Buffer: TFontResBuffer): Boolean;
function DeleteFontFromRes (const Buffer: TFontResBuffer): Boolean;
implementation
uses Classes, Windows, Messages;
function AddFont (const AFontFileName: String): Boolean; begin Result := AddFontResource(PChar(AFontFileName))<>0; SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0); end;
function DeleteFont (const AFontFileName: String): Boolean; begin Result := RemoveFontResource(PChar(AFontFileName)); SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0); end;
function AddFontFromRes (const ResName: PChar; var Buffer: TFontResBuffer): Boolean; var Res : TResourceStream; ResFontCount: DWord; begin Res := TResourceStream.Create(hInstance, ResName, 'RT_FONT'); try Buffer.Size := Res.Size + 1; Buffer.Buffer := AllocMem(Buffer.Size); Res.Read(Buffer.Buffer^, Buffer.Size); finally Res.Free; end; ResFontCount := 1; Buffer.Fraktur := AddFontMemResourceEx(Buffer.Buffer, Buffer.Size, nil, @ResFontCount); SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0); Result := Buffer.Fraktur<>0; end;
function DeleteFontFromRes (const Buffer: TFontResBuffer): Boolean; begin FreeMem(Buffer.Buffer, Buffer.Size); Result := RemoveFontMemResourceEx(Buffer.Fraktur); SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0); end;
end. |
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Fr 05.01.07 16:25
Hallo,
Danke für den Hinweis, kann ich auch gut gebrauchen - bisher habe ich nichts in der Art gefunden, weil es in meiner SDK-Hilfe (die zu D7 mitgelieferte Version) AddFontMemResourceEx und Verwandte schlichtweg nicht gibt, nicht einmal als Suchbegriff.
Gruss Reinhard
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 05.01.07 16:29
Ich würde dir empfehlen das PSDK von Microsoft herunterzuladen, da stehen die Befehle alle drin...
www.microsoft.com/do...A&displaylang=en
Lass dich vom Namen nicht täuschen, es geht nicht nur um Server 2003, das ist das richtige...
Ach so und mehrere tausend Zeilen Beispiele sind auch dabei...
// EDIT: Ich seh grade: Es sind ca. 1,1 Millionen Zeilen Beispiele...
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Fr 05.01.07 16:39
jaenicke hat folgendes geschrieben: | Ich würde dir empfehlen das PSDK von Microsoft herunterzuladen, da stehen die Befehle alle drin...
www.microsoft.com/do...A&displaylang=en
Lass dich vom Namen nicht täuschen, es geht nicht nur um Server 2003, das ist das richtige...
Ach so und mehrere tausend Zeilen Beispiele sind auch dabei...
// EDIT: Ich seh grade: Es sind ca. 1,1 Millionen Zeilen Beispiele... |
Hallo,
hab ich schon da, war aber bisher zu bequem zum Installieren - ich habe aber ja auch nicht damit gerechnet, dass in der Borlandversion schwarze Löcher auftauchen, schon deswegen, weil die ja selber nichts mehr dran machen.
Gruss Reinhard
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 06.01.07 18:52
Nicht nur, dass manche Funktionen in dem von Borland gelieferten fehlen, das neue PSDK direkt von MS ist auch viel übersichtlicher (ist HTML Help) 
|
|
|