برای اینکه مطمپن بشید فونتی نصب شده یا نه، می تونید لیست فونت های نصب شده در سیستم رو بدست بیارید و اسم فونت مورد نظر خود رو در لیست فونتها جستجو کنید. برای مثال:
function FontInstalled(FontName: string): boolean;
begin
Result := Screen.Fonts.IndexOf(FontName) >= 0;
end;
اگر فونتها نصب نبودند، می تونید فایلهای فونت مورد نظر رو در پوشه Fonts کپی کنید. .
{برای کپی فایلها می تونید از تابع CopyFile استفاده کنید
برای بدست آوردن مسیر پوشه Fonts می تونید از تابع SHGetSpecialFolderLocation استفاده کنید}
-----------------------
اگر قصد دارید که فونت مورد نظر بصورت موقت نصب بشه (حداکثر تا زمان Restart ویندوز) می تونید از تابع AddFontResource و SendMessage بصورت زیر استفاده کنید:
AddFontResource(PChar('Font Name'));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
بعد از اتمام کار هم باید RemoveFontResource رو به همون شکلی که در بالا برای AddFontResource مثال زدم فراخوانی کنید.
--------------------------
توضیحات تمامی توابع API فوق در Windows SDK (که به همراه راهنمای دلفی نصب میشه) موجود است.