واضح آرشیو وب فارسی:سایت ریسک: vb 6;استفاده از فونت فارسی به صورتی که روی هر کامپوتری خونده بشه؟؟؟ Saeed Shahabi 22 فروردين 1389, 14:55سلام... برنامه ای نوشتم که پیغام هاش به زبان فارسی هستند. وقتی این برنامه رو به صورت یک فایل exe در سیستم های دیگه اجرا می کردم گاهی فونت فارسیش خونده نمی شد.برای حل این مشکل چه کار کنم؟لطفا کمک کنید... متشکرم... Saeed 22 فروردين 1389, 19:04سلام از فونت های پیشفرض خود ویندوز Tahoma, Ariyal که تاهوما بهتره اگه نخواستید تنها روش اینه که فونت رو به ویندوز خاطی به صورت دستی کپی کنید یا برنامه ای بنویسید که اتوماتیک کپی کنی موفقیت western 22 فروردين 1389, 23:16سلام ببین دوست عزیز شما اگه مشکلت یه فونت خاص هست که طبق گفته استاد خودم آقا سعید باید اون فونت رو تو سیستم مقصد کپی کنی اما من فکر میکنم مشکل اینه که حتی فونتای خود ویندوز مثل تاهما استفاده میکنی یه سری علامت سوال و ... تو سیستم مقصد میبینی برای این مشکل تو سیستم مقصد از control panel > regional and language options زبان فارسی رو نصب کنی هم توی tab اول (regional options) فارسی رو انتخاب کن، توی tab دوم (languages) گزینه "install files for complex..." رو تیک بزن و تو tab سوم (advanced) هم زبان فارسی رو انتخاب کن، قاعدتا مشکلت باید حل بشه ارادتمند - محمد آشتیانی the_king 23 فروردين 1389, 01:32طبیعتا اگه برنامه شما قراره روی سیستم دیگری قابل اجرا باشه بصورت یک فایل اجرایی exe کامپایل اش می کنید. اگر می خواهید که فونت هایی بجز فونت های اصلی ویندوز (مثلا Tahoma و Arial و ...) استفاده کنید (مثلا B Homa ) بهتر است که فونت مورد نظرتان را همراه با برنامه exe توسط یک ابزار Setup ساز به یک Setup تبدیل کنید چون آن برنامه Setup ساز نصب شدن فونت را به سادگی انجام می دهد، اما اگر می خواهید که نصب شدن فونت توسط کد برنامه خودتان انجام شود، فایل فونت را کنار فایل اجرایی تان کپی کنید (مثلا BHoma.ttf) و توسط کد زیر آنرا در ابتدای کد برنامه تان در سیستم نصب کنید و در خاتمه کار برنامه حذف کنید: Option Explicit Private Declare Function AddFontResource Lib "gdi32.dll" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long Private Declare Function RemoveFontResource Lib "gdi32.dll" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long Private Sub Form_Initialize() AddFontResource "BHoma.ttf" End Sub Private Sub Form_Terminate() RemoveFontResource "BHoma.ttf" End Sub برای آنکه نوشته های فارسی بدرستی و بدون کاراکتر های ???? مشاهده شوند، از کنترل هایی که Unicode هستند استفاده کنید (بایستی پیش از اجرا برنامه شما نصب شده باشند) : ActiveX فارسی نویسی برای VB - GamaForum () ActiveX فارسی نویسی برای VB - MajidOnline () نمونه برنامه هایی که بدون استفاده از کنترل های ActiveX نوشته های فارسی را نمایش می دهند را هم قبلا در فروم قرار داده ام. برای نمایش متن بجای Label های استاندارد از توابع DrawTextW و یا TextOutW استفاده می کنند که متن فارسی شان به همان صورت Unicode که هست باقی بماند و به ANSI تبدیل نشود.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1325]