PDA

View Full Version : وارد کردن یک فونت خاص



فرزاد دلفی باز
پنج شنبه 08 مرداد 1383, 00:30 صبح
با سلام :
دوستان عزیز من در برنامه خود از یک فونت خاص مثلا Trafic استفاده کرده ام ولی در زمان اجرای برنامه در یک ویندوز دیگر که فونت Trafic در آن نصب نیست فونت ها طبق معمول بهم می ریزد حل من می خواهم بدانم که چطور میشه یک فونت خاص را از طریق کد وارد قسمت FONT در Control Panel کنم تا این فونت نصب شود . با تشکر فراوان ............. :oops:

SalarSoft
پنج شنبه 08 مرداد 1383, 09:46 صبح
باید فونت رو یه بار به آدرس Fonts ویندوز کپی کنی!

بعدش آدرس فایلو در ریجستری ثبت کنی تو آدرس زیر:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

شفیعی
پنج شنبه 08 مرداد 1383, 17:02 عصر
سلام
از طریق برنامه چگونه می توان عملیات بالا را رانجام داد ( ثبت در رجیستری)

(امید)
پنج شنبه 08 مرداد 1383, 20:16 عصر
در صورتی که برنامه رو installi کنید می تونید با استفاده از installshild این کار رو تعریف و در هنگام نصب برنامه فونت یا فونتهای مورد نظر شما نصب مش شوند

مهدی کرامتی
شنبه 10 مرداد 1383, 08:50 صبح
این تابع بدون نیاز به نصب فونت نیز آنرا باز میکند:

procedure LoadFont(Form:TForm;FileName:String);
Begin
AddFontResource(pchar(FileName));
SendMessage(Form.Handle, WM_FONTCHANGE, 0, 0);
End;
پارامتر اول این تابع نام فرم فراخوان این تابع و پارامتر دوم مسیر فایل حاوی فونت مورد نظر است.

فرزاد دلفی باز
چهارشنبه 21 مرداد 1383, 23:23 عصر
از راهنمایی های شما متشکرم .....

Mohammad S
سه شنبه 03 شهریور 1383, 12:16 عصر
این تابع بدون نیاز به نصب فونت نیز آنرا باز میکند:

procedure LoadFont(Form:TForm;FileName:String);
Begin
AddFontResource(pchar(FileName));
SendMessage(Form.Handle, WM_FONTCHANGE, 0, 0);
End;
پارامتر اول این تابع نام فرم فراخوان این تابع و پارامتر دوم مسیر فایل حاوی فونت مورد نظر است.
با تشکر از شما جناب آقای کرامتی
مشکلی که وجود داره اینه، بعد از اجرای رویه فوق، همون موقع فونت اعمال نمشه مثلا اگر شما بخواهید توسط یک کلید این کار را انجام دهید، دستورات فوق اعمال نمیشن ولی اگر یک بار برنامه رو باز و بسته کنیم درست میشه. حالا می خواستم بدونم با چه دستوری می تونم فونت اون لیبل رو رفرش کنم (که با فونت جدید رسم بشه)؟ :roll:
من یک بار Show و Hide کردم ولی فونت اعمال نمیشه و به صورت مربع مربع نشون می ده.

یک چیز جالبی (البته مضر) که امرزو باهاش مواجه شدم: من با InstallShield تعدادی فونت وارد پوشه Fonts کردم. بعدا متوجه شدم به جای اینکه فونتها را درون پوشه فونت نصب کنه، یک Shortcut اونجا قرار داده به محل قرار گیری فونت شما. خوب معلومه مشکلی که پیش میاد زمانی هست که اون فونت خودش نصب بوده و حالا تبدیل شده به shortcut و البته بعد از پاک کردن برنامه شما، دیگه اون فونت کار نمی کنه.

در هر صورت فکر کنم روش بالا بهترین روش باشه به شرطی که بتوان اونو رفرش کرد یا .......!

با تشکر

DataMaster
چهارشنبه 04 شهریور 1383, 08:05 صبح
شما در Installshild اشتباه کار کردید چون من این کار رو بار ها انجام دادم و موقع نصب برنامه فونتهای لازم رو به خوبی نصب میکنه و این همه دردسر کد نویسی رو هم لازم نیست

Mohammad S
چهارشنبه 04 شهریور 1383, 11:47 صبح
میشه بفرمایید چکار باید کرد؟
البته InstallShield برای دلفی 7

ضمنا یک مشکل دیگه هم دارم، من بانکهایم را درون یک پوشه در زیرپوشه اصلی ریخته ام. با برنامه InstallShield خواستم بسازم، نشان داد که ساخته شده ولی موقع نصب ساخته نمی شود. :roll: