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;