Einzelnen Beitrag anzeigen

Michi123

Registriert seit: 27. Jun 2007
9 Beiträge
 
#1

Schriftart im Programm funktioniert nicht unter Vista

  Alt 16. Jul 2008, 17:20
Hallo,
hab das Problem, dass ich eine Schriftart in mein Porgramm als Resource eingebunden habe und unter Vista wird diese dann nicht verwendet. Unter XP jedoch funktioniert alles einwandfrei. Auch wenn ich das Porgramm unter Vista als Administrator ausführe ändert sich daran nichts.
Gibt es denn eine Möglichkeit besagtes Problem zu lösen, ohne extra die Schriftdatei aus der Resource in den Programmordner abzuspeichern und dann von dort aus zu laden?

Schoma vielen Dank für die Antworten.

Delphi-Quellcode:
implementation

{$R *.dfm}
{$R Beispiel.res}

procedure TfrmMain.FormCreate(Sender: TObject);
var
  Res : TResourceStream;
  ResFontCount: DWord;
begin
  Res := TResourceStream.Create(hInstance, 'Beispiel', 'RT_FONT');
  try
    ResSize := Res.Size + 1;
    FontBuffer := AllocMem(ResSize);
    Res.Read(FontBuffer^, ResSize);
  finally
    Res.Free;
  end;

  ResFontCount := 1;
  hFontFraktur := AddFontMemResourceEx(FontBuffer, ResSize, nil, @ResFontCount);
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
  MTest.Font.Name := 'BeispielSchriftName';
  MTest.Font.Size := 42;
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  FreeMem(FontBuffer, ResSize);
  RemoveFontMemResourceEx(hFontFraktur);
end;
  Mit Zitat antworten Zitat