Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Font/Schriftart in projekt einbinden

  Alt 15. Aug 2006, 21:35
Hallo,

wie wäre es damit: Du extrahierst den Font in eine temporäre Datei und registrierst ihn. Beim Beenden des Programms deregistrierst Du den Font wieder und löschst die Datei.

Hier dazu ein paar Code-Schnipsel:
Delphi-Quellcode:
function GetTempFile: WideString; // Temporären Dateinamen erzeugen
var
  Buffer: WideString;
begin
  SetLength(Buffer, MAX_PATH);
  GetTempPathW(MAX_PATH - 1, PWideChar(Buffer));
  GetTempFileNameW(PWideChar(Buffer), '', 0, PWideChar(Buffer));
  Result := PWideChar(Buffer);
end;

procedure AddFontRes(const FileName: WideString);
begin
  AddFontResourceW(PWideChar(FileName)); // Font registrieren
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); // Alle benachrichtigen
end;

procedure RemoveFontRes(const FileName: WideString);
begin
  if RemoveFontResourceW(PWideChar(FileName)) then // Font deregistrieren
  begin
    SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); // Alle benachrichtigen
    DeleteFileW(PWideChar(FileName)); // Font löschen
  end;
end;
Das Extrahieren aus der Ressource und das Speichern in eine Datei fehlt hier, ist aber mit TRessourceStream recht einfach.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat