ورود

View Full Version : انتقال نرم افزار به پلات سیستم های مختلف؟



مهدی فهمیده غلامی
پنج شنبه 20 فروردین 1383, 20:54 عصر
من یه برنامه دلفی در win98 پارسا نوشته ام
حالا این برنامه را در winXP در محیط دلفی باز می کنم متن label ها وسایر کنترل هایی که متن فارسی داره رو خراب کرده و بجای اون علامت سوال ؟ می ذاره
باید چکار کنم
من حتی کلیه فونت های ویندوز پارسا رو در xp هم کپی کرده ام ولی باز هم متن های فارسی درست نشد .
خواهشا یه راه حل بگید در ضمن تعداد فرم ها 60 تا است

سار
پنج شنبه 20 فروردین 1383, 22:54 عصر
وای کی حال داره همه این 60 فرم رو عوض کنه؟؟؟؟؟؟ :گیج: :?
جدا کسی راه حل ساده تری میشناسه؟

ali643
پنج شنبه 20 فروردین 1383, 23:26 عصر
یه سرچی بزن چند وقت پیش همین موضوع مطرح شد که با چند خط کد تمام فونت های برنامه به چیزی که می خواستی عوض می شدند :خیلی متعجب:

مهدی فهمیده غلامی
شنبه 22 فروردین 1383, 22:28 عصر
دوستان من تو سایت هم گشتم اماچیزی پیدا نکردم
جون من یه راه حل فوری بگید!!!

یک شنبه 23 فروردین 1383, 09:02 صبح
for i:=0 to screen.FormCount-1 do
for j:=0 to screen.Forms[i].ComponentCount do
if screen.Forms[i].Components[j] is tlabel then
(screen.Forms[i].Components[j] as tlabel).Font:=datamodule1.fontdialog1.Font;

JavanSoft
یک شنبه 23 فروردین 1383, 19:51 عصر
البته اگر همین روش را با یک فایل ini ادغام کنید نتیجه مفید تری می گیرید

najafi_1
دوشنبه 24 فروردین 1383, 11:49 صبح
با سلام
چون موضوع ممکنه برای اکثر دوستان پیش بیا خواهش میکنم در این زمینه بیشتر توضیح بدهید
مثلا کد نوشته شده را در کجا بنویسیم و سایر موارد . اگر از خاصیت وراثت استفاده کنیم چطور و . . .؟
متشکرم

Pichidehtarin
دوشنبه 24 فروردین 1383, 12:05 عصر
سلام من یه روش نا مربوط بلدم

از کنترل پنل ویندوز اکس پی Regional and Language Options رو باز کرده در آخرین سربرگ (Advanced) تو قسمت اول
(Language for non-Unicode programs) زبان فارسی رو انتخاب کن بعد از اینکه کامپوتر راستارت شد شاید مشکل شما حل شده باشه .

Arash_Ebrahimi_NK

دوشنبه 24 فروردین 1383, 13:07 عصر
کد نوشته شده را در کجا بنویسیم
خوب هروقت خاستی فونت رو عوض کنی یه فونت دیالوگ بزار رو فرم بعد یه باتن برای تغییر فونت بزار روی رویداد onclick بنویس:

if datamodule1.fontdialog1.execuet then
for i:=0 to screen.FormCount-1 do
for j:=0 to screen.Forms[i].ComponentCount-1 do
if screen.Forms[i].Components[j] is tlabel then
(screen.Forms[i].Components[j] as tlabel).Font:=datamodule1.fontdialog1.Font;

اگر از خاصیت وراثت استفاده کنیم چطور
میتونی این کار رو بکنی یعنی Design time موقع طراحی برنامه خاصیت parentfont همه لیبل ها رو true بکنی(به صورت دیفالت تا وقتی که فونت لیبل رو تغییر ندی true هست) بعد وقتی خاستی فونت همه لیبل ها رو عوض کنی بجای کد بالا اینو بنویسی:

if datamodule1.fontdialog1.execute then
for i:=0 to screen.FormCount-1 do
screen.forms[i].font:=datamodule1.fontdialog1.Font ;

اگر همین روش را با یک فایل ini ادغام کنید نتیجه مفید تری می گیرید
اقا محمد اولا عیدت مبارک :)
دوما توی سال نو گز ما یادت نره :mrgreen:
سوما متوجه منظورت نشدم؟؟ یعنی مثلا اسم فونت رو توی یه ini ذخیره کنیم که دفعه بعد که برنامه اجرا میشه اون فونت رو بخونه؟؟؟ :?: اگه منظورت اینه من تو اینجور کارا با registry رو ترجیح میدم :wink:
چهارما ایشالا سال خوبی داشته باشی تو و دختر کوچولوت :)

JavanSoft
دوشنبه 24 فروردین 1383, 13:22 عصر
اقا محمد اولا عیدت مبارک
شما هم امیدوارم سال خوبی داشته باشید

دوما توی سال نو گز ما یادت نره
هیچ وقت به گذشته فکر نکن .. از گذشته درس بگیر :?

سوما متوجه منظورت نشدم؟؟ یعنی مثلا اسم فونت رو توی یه ini ذخیره کنیم که دفعه بعد که برنامه اجرا میشه اون فونت رو بخونه؟؟؟
اگر در مورد برنامه سنگینی مثل آنچه سوال شد است ...بله
ولی اگر در مورد برنامه های بعدی است نام فونت را در یک فایل نگهداری کنید بهتر است

اگه منظورت اینه من تو اینجور کارا با registry رو ترجیح میدم
من اصلا ترجیح نمی دهم ... چون امکان اختلال و کاهش سرعت در برنامه ها زیاد است + کلی مکافات

چهارما ایشالا سال خوبی داشته باشی تو و دختر کوچولوت
ممنون متشکرم ... انشاالله شما هم بعدا دختر دار بشی :گیج: