Pa rešio sam ovo delimicno. Odnosno izvadim font iz resursa, snimim na hdd i odatle ga instaliram za moju aplikaciju i ovo radi.
Ono što bih hteo je da izbegnem snimanje fonta na hdd.
Code:
procedure UcitajResursniFont;
var
MojStream : TResourceStream;
Lokacija:String;
Begin
MojStream := TResourceStream.Create(Hinstance , 'AZ' , RT_RCDATA);
Lokacija:= ExtractFilePath( Application.ExeName);
Lokacija:= Lokacija+'Azbuka03_D.ttf';
if not FileExists(Lokacija) then
MojStream.SaveToFile(Lokacija);
AddFontResource(PChar(Lokacija));
SendMessage(Application.Handle ,WM_FONTCHANGE,0,0);
MojStream.Free;
End;
Za brisanje Fonta nakon zatvaranja aplikacije
Code:
Procedure BrisiResursniFont(Brisi_sa_HDD:Boolean = true);
var
Lokacija:String;
begin
Lokacija:= ExtractFilePath( Application.ExeName);
Lokacija:= Lokacija+'Azbuka03_D.ttf';
if not RemoveFontResource(PChar(Lokacija)) then ShowMessage('Nije uklonjen');
if FileExists(Lokacija)AND Brisi_sa_HDD then DeleteFile(Lokacija);
SendMessage(Application.Handle ,WM_FONTCHANGE,0,0);
end;
Posle u kodu
Memo1.Font.Name:='Azbuka03_D.ttf';
mislim da bi funkcija AddFontMemResourceEx trebala da resi problem
pozz
[Ovu poruku je menjao Milan Milosevic dana 12.07.2016. u 10:13 GMT+1]