Se si desidera utilizzare un carattere, è necessario installare il carattere. Ma puoi simulare questo, usando AddFontResource
.
procedure TForm1.FormCreate(Sender: TObject) ;
begin
AddFontResource('c:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
//Before application terminates we must remove our font:
procedure TForm1.FormDestroy(Sender: TObject) ;
begin
RemoveFontResource('C:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
Come si vede l'AddFontResource ha bisogno di un nome di file. Lo stesso sta per AddFontResourceEx.
Quindi è necessario un file di font. Ma possiamo anche fingere questo.
Usa 's TjvDataEmbedded
per includere il file TTF nel file eseguibile. Per incorporare il file del font è semplice. (Clic con il tasto destro, 'Carica da file' ...).
In fase di esecuzione, estrai il tuo file nella directory temporanea dell'utente (vedi Metodi TjvDataEmbedded - Non lo so ora, ma dovrebbe essere qualcosa come SaveToFile o simile). Btw puoi estrarlo in qualsiasi altra directory che ti piace. Chiama il numero AddFontResource
su di esso.
Inoltre, in base alle proprie esigenze, è possibile estrarre il file in una memoria mappata e/o in un'unità RAM.
HTH
fonte
2010-02-21 09:07:47
Proprio quello che stavo cercando, grazie! –
vuoi mostrarmi un esempio? – sma6871