# پایگاه‌های داده > سایر پایگاه‌های داده > Foxpro >  مسائل و مشکلات فارسی نویسی و راه حلهای آن

## kia1349

موضوعات مزتبط با فارسی نویسی و مشکلات و راه حل آن را در این بخش مطرح کنید

----------


## rezamim

قرار بود شما در مورد فونت بکار رفته در برنامه مربوط به حسابهای سپهر بررسی کنید ؟ :wink:

----------


## binyaz2003

بدلیل اینکه خیلی از عضوهای جدید برای فارسی نویسی و پشتیبانی right to left و همچنین برای منوها مشکل دارند می تونند به این آدرس مراجعه کنند
http://www.microsoft.com/middleeast/...ualFoxPro.aspx
از بقیه دوستان هم تقاضا دارم راه حل های مشکلات فارسی رو اینجا مطرح کنند
 :sunglass:

----------


## rezaTavak

سلام

اصل صفحه زیر که به صفحات دیگر میرود:

http://www.microsoft.com/middleeast/msdn/

----------


## kia1349

جناب معمار بررسی کردم ولی تا الان جوابی نگرفته ام
شرکت انفورماتیک کیش متولی این موضوعه که تا حالا این فونت رو بمون نداده و قرار بود یه الگوریتم هم به ما بده که اونو هم نداد

----------


## rezamim

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

----------


## naghdi

سلام بر همه دوستان
من از نرم افزار پارس پندار استفاده میکنم و خیلی راضی هستم
در مورد توضیحات بیشتر یک سری به نشانی زیر بزنید
WWW.PARSPENDAR.NET

----------


## rezaTavak

سلام

دوست عزیز برای برنامه نویسی حرفه ای حتما شما نیاز به Grid,TreeView,EditText,Combo, و... خواهید داشت که مسلماً استفاده از توابع به جای کار ویژوال سخت تر است. من خودم در عین حال تا اونجایی که ممکنه از چیزهای خود فاکس استفاده میکنم و اگه نشد از ActiveX.   
پارس پندار ممکنه برای کسی که به محیط داس عادت داره خوب باشه اما برای محیط ویندوز که یه چیز قدرتمند مثل کلاس در اون اضافه شده و ارتباط فاکس پرو با Ole و Dll و... به راحتی امکانپذیره همچین جذاب نیست و کار برنامه نویسی را دهها برابر میکنه. خوبی فاکس پرو اینه که شما را از دغدقه پرداختن به مسائلی غیر از تحلیل بانک خودتون رها کرده (البته برای غیر فارسی زبانها و بهتر بگم زبانهای چپ به راست). 

البته این فقط نظر شخصی من است.

----------


## naghdi

سلام
صحبت شما دوست عزیر کاملا درست است ولی من تا حالا برای فارسی نویسی در فاکس  یک dll یا یک ocx مناسب که کامل و کاربردی باشه  ندیدم .
یکی از دوستانم پیشنهاد ش این بوده که از فایل زیر استفاده کنم
من  روی فایل زیر کار کردم ولی موفق نشدم محتویان text box رو داخل یک متغیر  بریزم و ...
خلاصه بگم ControlSource نداره.
ولی راست به چپ  مناسبی داره.
شما دریافت کنید شاید موفق شدین.
برای دریافت فایلhttps://www.iwebschool.ir/ 
موفق باشد.

----------


## rezaTavak

سلام

من هم دقیقا از همین کنترل استفاده میکنم که کنترل استانداری برای میکروسافت است. یعنی Microsoft Form 2 یک مثال برای شما در همین قسمت قرار خواهم داد.  در یکی از قسمتهای این فروم هم توضیحاتی راجع به آن داده ام. حتی توزیع آن را هم که چه فایلهایی باید در آن باشد را جهت دوستان مطرح کرده ام. البته در توزیعی که انجام دادم به این نتیجه رسیدم که فایل Vbame.dll جهت عربی است و باید در هنگام نصب انرا نیز مد نظر داشت.

----------


## binyaz2003

سلام
یک موضوع اینه که vfp روی 98 se قشنگ کار می کنه و program error  نمیده اما در 98 خطا میده
دوم اینکه من تو xp فارسی برنامه ام رو نوشتم و حالا تو 2000 که اونم فارسیشو انتخاب کردم و همینطور عربیشو برای ساپورت right to left اما عنوان پنجره ها و منوها درست فارسی نیست!مشکل کجاست؟آیا باید فونتش رو هم همراهش بزارم و اینکه فونت رو هم tahoma گزاشتم

----------


## binyaz2003

عید همگی مبارک
پیدا کردم از روی ساعت پستم معلوم میشه تا حالا داشتم دنبالش می گشتم باید فارسی رو بعنوان زبان دیفالت سیستم تعریف کنیم
Regional options->General->set default
اما برای XP چی؟ من دیگه میخوام بخوابم :cry:

----------


## binyaz2003

inja chera farsi nemishe
man winxp 2000 + sp2 nasb kardam ama vaghty arabic(egypt) ro entekhab mikonam tamame barnamehaye man ba fox hatta khode fox Program Error mideh?

----------


## rezaTavak

سلام

مشکل شما جالبه!

----------


## binyaz2003

دوباره فاکس رو نصب کردم و مشکل حل شد اما قبلش هر کار کردم نشد

----------


## binyaz2003

آدرس پنجره پیغام فارسی
http://www.barnamenevis.org/download.php?id=3011
البته بجای فایلهای ویو می تونید از تابع api به اسم  messagebeep  استفاده کنید

DECLARE integer MessageBeep IN user32 Integer nbeep
*npict=16,32,48,64
MessageBeep&#40;nPict&#41;

----------


## دلفی آی آر

سلام دوستان برنامه نویس و باحال
من قبلا فاکس کار می کردم،ولی الان دلفی کار شدم چون اینجا منطقه محرومه (جاجرم از خراسان شمالی) . حتی من مدتی خواستم با ویژوال فاکس پرو کار کنم
اما چون منبع آموزشی نبود نتونستم (فکر کنید برای نمایش گزارش از دستور @..,.. say استفاده کنید!!! اون هم خط کشی ها رو انجام بدید!!!!!)
------------------------------
اگر دنبال webspace هستید یه سری به سایت 50megs.com هم بزنید بد نیست
------------------------------
راستی توی فاکس 2.6 برای extract یک فایل از فایل exe از دستور copy file &lt;source> &lt;destination> استفاده کنید.
من با این دستور و برنامه نویسی C++‎ یک ساعت گرافیکی نوشتم و توی برنامه گذاشتم.
راستی به دستورات زیر توجه کنید:
@5,5 get cmd default space(50)
read
wait wind 'You typed '+cmd+chr(13)+'press a key to run it!'
&amp;cmd

----------


## binyaz2003

سلام
به جمع ما خوش آمدین
اما باید بگم که برای ویژوال فاکس پرو همه ایران محروم هست چون کلا 2 تا کتاب بیشتر درباره اش نیست

----------


## kia1349

البته منظور فارسیه وگرنه لاتینش بصورت ebook هست

----------


## javad_hosseiny

دوستان مشکلی کوچکی در بحث ادیت باکس ها هست که در متون فارسی با قید تنظیمات right to left , align مشکلی است که مشابه گراید در نسخه های قبل 7  کلیدهای کرسر (مکان نما) معکوس کار می کنند آیا برای این مشکل راه حلی دیده اید؟

----------


## kia1349

اگر در ویندوز 98 هستید برای فارسی از activatekeyboardlayout و اگر در ایکس پی هستید از loadkeyboardlayout استفاده کنید

----------


## javad_hosseiny

اقا کیا سوال مربوطه ربطی به فارسی کردن نداره (یعنی اینکه اینکار را اول برنامه انجام داده ام و در تمامی قسمتهای مربوطه فارسی دریافت می کنم) بلکه مشکل درست عمل نکردن کلیدهای مکان نما است (یعنی بعکس هستند کلید راست به سمت چپ می رود و بالعکس) 
با تشکر

----------


## javad_hosseiny

دوستان کسی نبود در این رابطه راه حلی ارائه بده

----------


## rezaTavak

سلام


آقای جواد حسینی عزیز:

این مشکل و مشکل Preview اگه حل بشه که دیگه اصلا فاکس پرو مثل قبل که تحت داس همه باهاش کار میکردند میشه.

متاسفانه بدلیل عدم استاندارد بودن کنترلهای فاکس پرو این مشکل وجود دارد.


در بسیاری از قسمتهای این بخش راجع به آن بحث شده است. اما خودم از کنترل Ocx یا Fm20.dll استفاده میکنم.

----------


## javad_hosseiny

به هر حال ممنون از پاسختون

----------


## rezaTavak

اختیار دارید

----------


## علی کلاهدوزان

سلام 


من می خوام 120000 پول بدم pars pendar رو بخرم واقعا خداییش خوبه

----------


## rezaTavak

سلام


به نظر من نه.

----------


## علی کلاهدوزان

چرا وقتی برنامه ام را exe می کنم فایلهای dbf use شده توسط دیتا بیس و متغیرهای public رو نمی شناسه

----------


## binyaz2003

شما باید با استفاده از توابع sys(5) و sys(2003) فهرست جاری را بیابید و با دستور set default to مسیر رو در اول برنامه ست کنید

----------


## سعید اسلامی

با سلام

وقتی برنامه ذیل را اجرا میکنید منو ساخته میشود که باید راست چین باشد ولی در مرحله اول چپ چین میباشد و با زدن کلیک موس روی آن راست چین میشود همچنین POPUP های ایجاد شده نیز چپ چین میباشد 
این برنامه را در VFP9 در XP میباشد
لطفا مرا یاری کنید

SET SYSMENU TO
SET SYSMENU AUTOMATIC 

SET SYSMENU TO RTLJUSTIFY 
     DEFI MENU mainmenu  in (_screen.Name) BAR font 'tahoma' &&NOMARGIN
     DEFI PAD aa OF mainmenu PROMPT 'AA'
     DEFI PAD bb OF mainmenu PROMPT 'BB'
     DEFI PAD cc OF mainmenu PROMPT 'CC'
     DEFI PAD dd OF mainmenu PROMPT 'DD'
     DEFI PAD ee OF mainmenu PROMPT 'EE'

     ON PAD aa OF mainmenu ACTIVATE POPUP menu1
     ON PAD bb OF mainmenu ACTIVATE POPUP menu2
     ON PAD cc OF mainmenu ACTIVATE POPUP menu3
     ON PAD dd OF mainmenu ACTIVATE POPUP menu4
     ON PAD ee OF mainmenu ACTIVATE POPUP menu5

      DEFI POPUP menu1  font 'tahoma' RTLJ
      DEFI BAR 1 OF menu1 PROMPT   'AAAAAAAA'
      DEFI BAR 2 OF menu1 PROMPT   'BBBBBBBB'

      DEFI POPUP menu2 RTLJ font 'tahoma'
      DEFI BAR 1 OF menu2 PROMPT   'AAAAAAAA'
      DEFI BAR 2 OF menu2 PROMPT   'BBBBBBBB'

      DEFI POPUP menu3 RTLJ font 'tahoma'
      DEFI BAR 1 OF menu3 PROMPT   'AAAAAAAA'
      DEFI BAR 2 OF menu3 PROMPT   'BBBBBBBB'

      DEFI POPUP menu4 RTLJ font 'tahoma'
      DEFI BAR 1 OF menu4 PROMPT   'AAAAAAAA'
      DEFI BAR 2 OF menu4 PROMPT   'BBBBBBBB'

      DEFI POPUP menu5 RTLJ font 'tahoma'
      DEFI BAR 1 OF menu5 PROMPT   'AAAAAAAA'
      DEFI BAR 2 OF menu5 PROMPT   'BBBBBBBB'
      on selec popu menu5 CANCEL

SET SYSMENU TO RTLJUSTIFY && Sets the system menu to the right

acti menu mainmenu nowait

read events

----------


## binyaz2003

بهتره شما با menu designer طراحی و بعد generate کنید و بعد از اجرا راست به چپ کنید

----------


## سعید اسلامی

مشتکرم 

من اینکار را کردم . اگر بخواهیم منوی FORMAT ظاهر نشود چکار کنیم

----------


## سعید اسلامی

با سلام

اگر بخواهیم در هنگام ورود به برنامه پنجره فاکس بصورت اتوماتیک تمام صفحه شود و همین حالت هنگام تهینه گزارش برای پنچره ریپورت انجام شود چکار باید کرد

----------


## binyaz2003

در مورد سوال format وقتی read events رو اجرا کنید دیگه نمی آد و برای تمام صفحه شدن پنجره فاکس 
screen.windowstate=2_
و اما برای ریپورت دست کاربر هست یعنی اگر یکبار تمام صفحه کرد دفعه دیگه هم تمام صفحه می آد البته به شرط اینکه set resource=off نباشه

----------


## سعید اسلامی

با تشکر فراوان

----------


## Esikhoob

با سلام
 دوستان من در برنامه VFP 9 می‌خواهم منوی فارسی درست کنم. به نظر خودم طبق دستورالعمل عمل کردم.اما کار درست از آب در نمی آید.
مثلا همین کد برنامه‌ای که آقای سعیداسلامی در اینجا گذاشته را، در VFP کپی می‌کنم و اجرا می‌کنم در این خط:
SET SYSMENU TO RTLJUSTIFY      با این پیغام خطا مواجه می‌شوم:
Expression evaluator failed.چه باید کرد؟
قابل توجه اینکه اگر این خط برنامه را حذف کنم ، منو درست نمایش داده می‌شود ولی من می‌خواهم راست به چپ باشد.
در هر صورت خیلی ممنون.

----------


## binyaz2003

http://www.binyazprograms.com/articl...cle1binyaz.htm

----------


## mehran_337

به ویندوزت زبان عربی اضافه کنی دیگه این خطا رو نمی ده. طریقه کار هم توی لینک آقای بی نیاز

----------


## princeofesfahan

> سلام بر همه دوستان
> من از نرم افزار پارس پندار استفاده میکنم و خیلی راضی هستم
> در مورد توضیحات بیشتر یک سری به نشانی زیر بزنید
> WWW.PARSPENDAR.NET


khaste nabashi zahmat keshidi

----------


## Esikhoob

بچه ها منوی من ظاهرا اسمش shortcut menu  است ولی این دستور 
SET SYSMENU TO RTLJUSTIFY ا
فقط منو هایی که با pad تعریف میشوند را می‌فرستد اون ور.
در دستور 
DEFINE POPUP......RTLJUSTIFYچرا RTLJUSTIFY هیچ کاری نمی کند؟
خلاصه این shortcut menu را چگونه راست به چپ کنم؟

----------


## binyaz2003

نمیشه اینکارو کرد

----------


## Esikhoob

با سلام

دوستان ،برنامه ما در VFP5 و در Win 2000/XP در حالی که در قسمت: Regional and Language Options ------>Advanced------>language for non-Unicode programsزبان English انتخاب شده ، کار میکند که این آخری به خاطر اینست که ما بتوانیم برای menu ها، فونت "ایران سیستم" را انتخاب کنیم.چون تمام فونت های برنامه ما "ایران سیستم" است ، اسم فونت هم هست:Irnsys.FON
عکس چپ مربوط به زمانی که با settingبالا کارمیکند و همه چی درست است..
حالا ما می خواهیم این را در VFP9 اجرا کنیم و menu ها هم برایمان مهم نیست ، و به farsiهم نیاز داریم برای همین language for non-Unicode programs را رویfarsi می گذاریم ،ولی به طور ناخواسته دو اشکال به وجود آمده که در عکس نشان داده ام، این دو اشکال با آن دو موضوعی که در کنارش نوشته ام در رابطه است. یکی از اشکالات مربوط به farsi ساز ویندوز است و دیگری مربوط به اجرای برنامه در فاکس پرو های بالاتر از 5 (البته 7و 8 را امتحان نکردیم).

از دوستان تقاضا دارم اگر راه حل اجرای درست این برنامه را میدانند به ما بگویند. 
به هر حال از اینکه این مطلب را خواندید متشکرم.

----------


## binyaz2003

نحوه تنظیم ویندوز جهت پشتیبانی از RTL  

برنامه نویسی فارسی در ویژوال فاکس پرو

----------


## Esikhoob

برنامه ما با CodePage "ایران سیستم" هست که با CodePage فارسی مایکروسافت فرق دارد. آیا باز هم این موارد به درد ما می خورد؟

----------


## abdorreza

میخوام با توابع  API کلیدهای صفحه کلید را عوض کنم ، یعنی صفحه کلید مثل صفحه کلید ایران سیستم بشه و مثلا با زدن کلید ~ حرف پ درج شود

----------


## Esikhoob

1-این قسمت:
Regional and Language Options ------>Advanced------>language for non-Unicode programsبه نظر اشکال دار و Bug دار میآید، در پست قبلی که داشتم گفتم که اگر ما این قسمت را به جای English روی farsi بگذاریم ، آن فونت های بالای جدول( در برنامه ما )بهم می ریزد که دلیل منطقی ندارد ، اصلا چه فرقی بین فونت بالای جدول (Grid) و فونتهای داخل textbox ها و چاپ شده روی فرمها و screen (بجز menuها)میکند؟
2-چرا وقتی می خواهیم متن فارسی ای را که در VFP 9 که طبق دستور "بی نیاز" فارسی شده (البته به جای Arabic در قسمت Non-Unicode  ،من فارسی را انتخاب کردم) ، انتخاب کنیم جای الفبا بهم میریزد ، مثل اینکه متنهای فارسی از انتخاب شدن یا همان HighLight شدن فرار میکنند؟

----------


## binyaz2003

با سلام
مقاله اولی رو که من به شما معرفی کردم ترجمه دستوراتی است که خود میکروسافت برای پشتیبانی از راست به چپ و طبیعتا فارسی نوشتن مشخص کرده نه من!
اگر بخواهید بر اساس یونیکد فارسی بنویسید و نمایش و چاپ کنید باید این عملیات رو دقیق انجام بدید.
بقیه موارد مثل موردیکه گفتید یا اینکه مثلا در بعضی جاها با فشردن کلید سمت راست نشانگر به چپ و همینطور برای کلید سمت چپ برعکس عمل میکنند مشکلات ویژوال فاکس پرو هست که با مطالعه مقاله دوم اکثریت انها حل میشوند.دلیل این مشکلات رو هم آقای رضا توکل بارها در پستهای گوناگون گفتند.

----------


## عفت بزرگه

شما تغییر کلید پ رو با یک فارسی ساز میتونید حل کنید خواستید بگید من یک فارسی ساز بدون تبلیغ و لوگو  و .... ساختم نصبش هم 5 ثانیه بیشتر طول نمیکشد .

----------


## binyaz2003

برای ویندوز؟ نیکی و پرسش!

----------


## javad_1349

با سلام به دوستان 
توضیح مختصری در مورد Activex  و کاربرد آن درصورت امکان ویک مثال کوچولو 
 متشکرم

----------


## rezaTavak

> با سلام به دوستان 
> توضیح مختصری در مورد Activex  و کاربرد آن درصورت امکان ویک مثال کوچولو 
>  متشکرم


سلام

من یک قسمت راجع به FM20.dll توضیح داده ام 

در واقع ActiveX یک ocx یا dll است که به صورت ویژوال قابل برنامه نویسی است.

----------


## mehran_337

یکسری امکانات فراتر از اشیا و یا ابزارهای استاندارد برنامه در قالب فایلهای  dll یا ocx وجود دارند که به آن اکتیوایکس گفته می شود.
مثلا یک اکتیوایکس به نام richtext این امکان را فراهم می کند که که در فرم بتوانیم یک ادیت باکس با قابلیتهای وورد مانند تغییر قلم یک کلمه یا رنگ یا سرچ - تراز چپ و راست و وسط و ... ایجاد کنیم
و یا اکتیوایکس دیگری باعث می شود بتوانیم فایل زیپ ایجاد کنیم
حتی  یاهو مسنجر و مدیاپلیر هم ocx دارند و می توانید از آنها در فرم خود استفاده کنیم مثلا مدیاپلیر را در فرم بگذاریم
روش استفاده :
tools\options\controls
'گزینه activX control را انتخاب کنید . لیست ocx ها را می بینید حال می توانید انتخاب کنید
فقط کافیست در نوار ابزار form control روی آیکت کتاب (view classes) کلیک کنید و بخش activeX control را بزنید تا انچه را انتخاب کرده اید ظاهر شود .
توجه : ممکن است بعضی ها با فاکس کار نکند

----------


## Esikhoob

دوستان 
 در پست 43 مشکلاتی را مطرح کردم ، میخواستم بگویم راه حل آن را یافتم.
در مورد اشکالی که با upgrade کردن برنامه از VFP5 به VFP9 پیش آمده بود و همانطور که در عکس پیداست caption بعضی از صفحات pageframe1  به هم ریخته ، من فهمیدم اگر PageFrame1.RightToLeft را مساوی .F. قرار دهیم این مشکل حل میشود.
  حالا چگونه میتوانم یک برنامه بنویسم که به طور اتوماتیک تمام این form های(با پسوند .scx) مرا اصلاح کند؟ من فقط در قسمت تغییر propertyیک فرم ،به وسیله برنامه مانده ام.

----------


## rezamim

اول فرم رو از طریق use مثل یک جدول باز کن و بعد

replace properties WITH STRTRAN(properties,"RightToLeft = .T.","RightToLeft = .F.") ALL FOR ("pageframe" $ BaseClass)

----------


## Esikhoob

فقط من 2 چیز را نمی فهمم:
1 - چرا در help نوشته است که Propertyی RightToLeft در ورژن های غیر خاور میانه تاثیر ندارد؟(که دارد)
2- چرا اول که PageFrame را به form اضافه می کنیم :
RightToLeft = .T.است در  صورتی که در پرانتز جلوی .F. نوشته Default
این در حالی است که در help ، گفته است .T.

----------


## rezaTavak

سلام
این وقتی اثر داره که پشتیبانی از RigthToLeft توی ویندوز فعال شده باشه که توی XP از Control Panle/Reginal and language setting/language/Complext script language right to left ... را باید فعال کنید.
و Default بستگی به تنظیمات ویندوز دارد.

----------


## Esikhoob

با سلام
در مورد سئوال دوم ، Default در کجای ویندوز تنظیم میشود؟البته تنظیمات معمول را که برای خاورمیانه ای کردن نرم افزار لازم است می دانم ، بیشتر منظور من اینست که چرا در کامپیوتر من، از میان Control های فرم ،فقط Pageframe است که بر خلاف Default از ابتدا RightToLeft=.T.  دارد؟

----------


## Esikhoob

با سلام 
در VFP9برای یک Grid یک property وجود دارد به نام : lockcolumns 
اگر ما در زبان فارسی  ، بخواهیم این عمل را انجام دهیم (یعنی ستونها را از راست ثابت کنیم) ، چه کار باید بکنیم؟

با تشکر

----------


## Esikhoob

دوستان عزیز
می‌خواهم سئوال قبلی را طور دیگری مطرح کنم :
اگر یک Grid که در آن اطلاعات فارسی است ، و تعداد ستونهای زیادی داشته باشد به طوری که برای دیدن کل اطلاعات یک ردیف باید کلی scroll را به چپ و راست ببریم ،آنوقت  یک ستونی باشد که ما بخواهیم همیشه معلوم باشد (انگار به سمت راست Grid چسبیده)و در scroll به سمت چپ از صفحه بیرون نرود چه کار باید بکنیم؟ 

بسیار خوشحال می‌شوم اگر  در این زمینه ما را  راهنمایی بفرمایید.

----------


## ali_foxpro

از تمام امکانات فاکس میتوان براحتی برای متون فارسی استفاده کرد و نیازی به کنترل خارجی نیست اگر درست تنظیم کنید متونین از تمام امکانات فاکس استفاده کنین

----------


## ali_foxpro

اصلا نیازی به اینکارا نیست . تمام امکانات فاکس قابل فارسی کردن هستند.

----------


## sr_kazemi

سلام خسته نباشید  و شب بخیر.
این  activatekeyboardlayout و  loadkeyboardlayout که گفتید از کجا نتظیم میشه ؟

----------


## rezaTavak

*ورود شما به این بخش خیر مقدم و خوش آمد طرف من و سایر بچه های این بخش برای شما دوست عزیر .*
اینها دو API (تابعهایی که در فایلهای اساسی ویندوز هستند.) از ویندوز هستند که زبان صفحه کلید را تغییر می دهند. مانند مثال زیر:

DECLARE LoadKeyboardLayout IN WIN32API String,integer 
IF OS(3)="4" 
    LoadKeyboardLayout("00000401",1) 
ELSE  
    LoadKeyboardLayout("00000429",1) 
ENDIF

با این کد صفحه کلید فارسی می شود. و با این یکی :


DECLARE LoadKeyboardLayout IN WIN32API String,integer 
=LoadKeyboardLayout("00000409",1) 


انگلیسی می شود.

----------


## kia1349

البته اضافه کنم که بهتره برای یکبار در ابتدای لود شدن برنامه  این دستور

DECLARE LoadKeyboardLayout IN WIN32API String,integer 

رو بدید تا در حافظه قرار بگیره
حالا وقتی وارد یک تکست باکس میشید در خاصیت gotfocus آن دستور

=LoadKeyboardLayout("00000429",1)

را بنویسید
و در خاصیت lostfocus آن دستور 

LoadKeyboardLayout("00000409",1)

را بنویسید
بدین صورت شما در زمان ورود به یک تکست باکس بطور اتوماتیک امکان تایپ فارسی را دارید و در زمان خروج از همون تکست باکس کیبوردتان لاتین میشود
به همین راحتی

----------


## mn3250

> اصلا نیازی به اینکارا نیست . تمام امکانات فاکس قابل فارسی کردن هستند.


درسته اما من در فارسی کردن messagebox و منوها مشکل دارم. مابقی بدون نیاز به کار خاصی کار میکنند و نیازی به تغییر زبان ویندوز وجود نداره. 
اساتید گرامی راه حل ارائه کنند.

----------


## binyaz2003

لطفا اول يک کم جستجو کنيد.

http://binyazprograms.com/indexfa.ph...article&stid=9
http://binyazprograms.com/indexfa.ph...rticle&stid=10

----------


## IC_prog

> لطفا اول يک کم جستجو کنيد.
> 
> http://binyazprograms.com/indexfa.ph...article&stid=9
> http://binyazprograms.com/indexfa.ph...rticle&stid=10


استاد با سلام 
من در یکی از برنامه ها از منو در فرم استفاده کرده و تکه کدی که اشاره فرمودید رو قرار دادم و از کلیه اشیاء داخل toolbar استفاده کرده و از Microsoft Toolbar Control استفاده نکردم و مشکلی هم پیش نیومد. مسئله چیست ؟

(ذکر فرموده که در صورت استفاده از روش کدهای مورد نظر امکان استفاده از toolbar وجود ندارد.)
درضمن من از vfp 9 استفاده میکنم .

----------


## mn3250

جناب binyaz2003 متشکرم اما مشکل من رو حل نمیکنه. فقط بار اصلی منوست که مشکل داره. عرض کردم بدون تغییر زبان پیش فرض ویندوز.
جناب IC_prog درست میفرماییدبه هیچ کنترل اضافه ای نیاز نیست و همه چیز درست کار میکنه. 
بنظرم باید یکبار دیگه فارسی سازی در ویندوز رو بررسی مجدد کنیم.
من از vfp9 با سرویس پک 2 استفاده میکنم.

----------


## mn3250

اجازه بدید بهتر مطرح کنم:
بنا به دلایلی امکان تغییر زیان ویندوز رو در یک پروژه چند زبانه ندارم.
استفاده از fontcharset عربی 178 تا اینجا بدون مشکل بوده و همه جا جواب میده.
الا در messagebox ها و بار اصلی منو.
البته منو رو به این شیوه:

DEFINE MENU _mainmenu BAR AT LINE 0 IN WINDOW (THISFORM.Name) FONT 'Tahoma', 10 , 178

تعریف کردم. جالب اینجاست که وقتی 

DEFINE MENU _mainmenu BAR AT LINE 1 IN WINDOW (THISFORM.Name) FONT 'Tahoma', 10 , 178

تعریف کنم منو هم صحیح نمایش داده میشه. البته در کلیک و جلو و عقب رفتن مشکل پیدا میکنه اما از همه مهمتر جای منو هست که به شیوه دوم مقداری از صفحه رو از دست میدم.
اساتید راهنمایی کنند لطفا.

----------


## Esikhoob

اگر بخواهیم مانند برنامه WORD در یک TEXTBOX  هر چه بخواهیم تایپ کنیم ، علاوه بر اشکالات تا حالا گفته شده ، دلم می خواهد که مشکلات دیگری را هم بگویم ،تا نگویند که در یک سایت فارسی زبان ، اشکالات تایپ زبان خودشان را نگفتند:
1-کاراکترهایی مثل  ;   ) ( یا تایپ انگلیسی ما بین فارسی موجب پس و پیش شدن عبارات میشود  .
2- در صورت که بخواهیم یک عبارت فارسی که قبلا تایپ شده را ، با BACKSPACE پاک کنیم ، نمیشود ، انگار اون حرف آخر جمله فارسی جزو حروف مقدس است.

حتی این سایت هم با فارسی مشکل دارد، مثلا اگر همینجا که دارم فارسی تایپ میکنم بخواهم بنویسم:
 @ GET نمیشود درست نوشت و هی اون @  می افتد سمت راست ، در حالی که من در خط بالا هم  زبان صفحه کلید را انگلیسی کردم و هم  دکمه _ردیف چپ_ را از اون بالا (توی منوی همینجا که دارم مینویسم) زدم .

----------


## sr_kazemi

> دوستان مشکلی کوچکی در بحث ادیت باکس ها هست که در متون فارسی با قید تنظیمات right to left , align مشکلی است که مشابه گراید در نسخه های قبل 7 کلیدهای کرسر (مکان نما) معکوس کار می کنند آیا برای این مشکل راه حلی دیده اید؟


 بله خاصیت control Scource ادیت باکس را به فیلدی وصل نکنید . مقدار فیلد را در خاصیت Value آن قرار دهید و آنرا را Right to left کرده مشکل حل میشه.

----------


## Esikhoob

بله مشکلاتی که من در پست قبلیم گفتم بر اساس EditBox بود که اکثرشان با راه حل   sr_kazemi  حل میشود.

----------


## Esikhoob

با سلام
ضمن تبریک سال نو ، من متوجه موضوعی در اجرای VFP9 sp2 بر روی32bit  WinXP شدم. و آن اینکه وقتی  ویندوز را طوری تنظیم میکنیم که VFP فارسی بشود ، بیشتر error و Hang میکند و به اصطلاح unstable میشود.
پیغامی هم که موقع  error میدهد  یک پیغام خطای عمومی ویندوز که دکمه های SEND  و  Don`t SEND  دارد و در مواردی هم یک پنجره خطای VFP باز میشود که این تیپ خطاها را در فایل vfp9err.log که در دایرکتوری فاکس پرو است مینویسد.
vfp9err.log مال برنامه من پر است از خطای:
 Fatal error: Exception code=C0000005  @. . . این پیغام مخصوصا هنگام کار با debugger پیش میآید . هم چنین بعضی وقتها که در حال تایپ کد هستم هم پیش میآید.
برای حل این اشکال هم Foxuser.dbf را پاک کردم و هم یک کاربر جدید تعریف کرده ام و با آن کاربر وارد ویندوز شدم ، در این حالت error کمتر شد اما باز هم زیاد ERROR میدهد.
وقتی ویندوز را دوباره انگلیسی کردم ، ERROR خیلی کمتر شد(اما باز پیش میآید؟؟؟؟).
می خواستم ببینم شما دوستان هم متوجه unstable شدن VFP بعد از فارسی کردنش شده‌اید یا نه؟
متشکرم.

----------


## binyaz2003

با سلام
vfp9 سرويس پک 2 تعداد زيادي باگ دارد که پيشنهاد ميشه سرويس پک 2 نصب نشود.شايد اصلاحيه اي براي رفع مشکلات قرار بدهند.حتي در نسخه نمايشي sp2 بطرز بسيار مزحکي لوگوي فاکس توسط paint کلمه sp2 بهش اضافه شده بود که بعد اصلاح شد.

----------


## Esikhoob

با سلام
دوستان میخواستم بپرسم چرا VFP9  به انواع مختلف فایل CodePage  هایی اختصاص میده  ؟
مثلا در یک Project شما میتوانید ، در قسمت Project info…. و در tab با نام files  برای هر فایلی codepage ی مشاهده کنید ، آیا مهم است که اینجا برای فایل SCX ما codepage ENGLISH-1252 انتخاب کنیم یا Win ARABIC-1256 .
همینطور دستوری به نام : SET CPCOMPILE TO  وجود دارد ، این دستور چطور روی کمپایل تاثیر میگذارد ؟
من که هم با 1256 هم با 1252 ، کمپایل کردم فرقی متوجه نشدم .(حتی وقتی با 1252 SET CPCOMPILE TO هم که کمپایل کردم و فایل EXE ساختم ، بازهم تمام خاصیت های فارسی بودنش کارمیکرد)
فقط فکر کن برنامه ای که با حالت 1256 کمپایل شده را اگر در محیط ویندوز english  ببریم و کمپایل کنیم ممکن است قاطی پاتی کند.

----------


## Esikhoob

با سلام مجدد 
دوستان برای MESSAGEBOX فارسی ، که عبارت را درست از سمت راست مرتب کند چه راه حلی استفاده میکنند؟

چیزی شبیه به SYS(3009,1 که سر خط متن tooltip را به خوبی به سمت راست میآورد .

با تشکر

----------


## frahimi

با سلام 
من هم در تکست باکس این مشکل را داشتم و کنترل سورس آنرا گرفتم درست شد
اما در گرید آنرا چگونه حل کنم
مثلا 27/م/88 (عدد 27 سمت راست و عدد 88 سمت چپ) آنرا در تکست باکس درست نشان میدهد در هنگام چاپ هم درست نشان میدهد ولیکن در گرید آنرا وارونه نمایش میدهد  عدد 27 را در سمت چپ و 88 را در سمت راست نشان میدهد چگونه میتوان این مشکل را در گرید هم حل کرد.
با تشکر از دوستان

----------


## jooybar

در یک  textbox که مقدار اولیه value برابر صفر داده شده وقتی مثلا یک عدد 10 رقمی وارد میشود .
چنانچه با tab  یا کلیدهای arowkey به این textbox برگردیم میتوان یک عدد 9 رقمی تایپ کرد و هر دفعه در موقع ویرایش کرسر بجای آنکه در انتهای سمت چپ textbox قرار بگیرد .  در آخرین نقطه ویرایش textbox قرار میگیرد !!!!
راه حل چیست ؟

----------


## Esikhoob

دوستان من جواب خودم را در مورد چپ به راست کردن پنجره ()MESSAGEBOX که در 3 پست قبل پرسیده بودم پیدا کردم  :تشویق: 
چنانچه به اول عبارت پیغام مورد نظر دوتا کاراکتر (254)CHR اضافه کنیم ، MESSAGEBOX ، از چپ به راست میشود.

متاسفانه اگر کلمات انگلیسی هم قاطی پیغام ما باشند ، کلمات فارسی را پس و پیش میکنند.
مثال:

c=" در تاريخ 1388/12/05 حرکت کرديم - رفتيم به کاشان از اون ورم به انديمشک بعدم ساکن شديم به خانمان"
MESSAGEBOX(CHR(254)+CHR(254)+c,16,"")

----------


## mostafa_zamani

> بله خاصیت control Scource ادیت باکس را به فیلدی وصل نکنید . مقدار فیلد را در خاصیت Value آن قرار دهید و آنرا را Right to left کرده مشکل حل میشه.


اگر زمانیکه داخل ادیت باکس هستیم کلیدهای ctrl + Rightshift را بزنیم  مشکل راست به چپ تقریبا  حل می شود .( حتی زمانیکه خاصیت control Scource ان به فیلدی متصل باشد.  )
حال چگونه می توانیم زمانیکه به  ادیت باکس وارد می شویم  کلیدهای ctrl + Rightshift  اتوماتیک زده شود  ؟
بنده استفاده از  دستورهای keyboard , macro   را بررسی کردم  و نتیجه ای نگرفتم . 

با تشکر  از همه دوستان .

----------


## jubilantis

سلام 

من وقتي برنامه را اجرا مي كنم فارسي نمايش نمي بينم 

وقت ساختن منو هم فارسي نمي نويسه 

مشكل جي  هست  ؟  ممنون

----------


## mostafa_zamani

در ویندوز کنترل پانل :
Regional and Language option   زیانه اول را روی farsi  و زبانه Advanced  را Arabic(Egypt)  قرار دهید .

----------


## tapartoor600

با انجام تنظیمات کنترل پنل مسئله حل میشه اما نمیشه که به همه گفت تنظیمات Regional رو تغییر بدن. ضمناً من وقتی از دلفی 5 استفاده می کنم این مشکل به وجود نمیاد اما با دلفی 7 فونت های فارسی نشون داده نمیشه. راه حل واقعی چیه؟

----------


## ramrav

سلام دوستان
هنوز مشکل من در مورد مشکل تایپ فارسی در word که مجبور بودم بعد از هر مکثی یک کلید space بزنم تا تایپ ادامه پیدا کنه حل نشده. لطفا یه نفر من رو راهنمایی کنه. 
یه مشکل دیگه هم دارم. کلیدهای Ctrl+ کلیدهای جهت نما     که برای حرکت آهسته تر اشکال و ... استفاده میشه در کامپیوتر من کار نمیکنه. لطفا من رو راهنمایی کنید.
با تشکر

----------


## gh_khajehzade

تايپ تو چه كنترلي مشكل دارين؟

----------


## شهرام آزاد

من با یاهو مسنجر مشکل دارم به این صورت که وقتی فارسی تایپ میکنم حرف اول درست تایپ میشه اما از حرف دوم به بعد اتوماتیک انگلیسی میشه و هر کار میکنم فارسی نمیشه.چیکار کنم؟ویندوزم 7 اولتیمیت 64

----------


## MASOUD_ALIZADEH1

با عرض پوزش : موفق به راست چین کردن USER MENU نشده ام 
1 - در  Regional and Language / Advanced      گزینه     Arabic-Egypt    رو انتخاب کردم
2 - در منوی tools / options   فاکس و در تب  Regional   آن گزینه    Use System Settings    را تیک کردم 
3 - در فایل    Config.FPW     هم    TITLE  ,  COLLATE  , DATE   ,  CENTURY  , CURRENCY    ,  CODEPAGE   رو   طبق دستورالعمل 
SET   کردم 
4 - در     PROPERTY     فرم و ....   هم خصیصه    RIGHTTOLEFT = T    کردم
5 - دستور     SET SYSMENU TO RTLJUSTIFY     رو هم در برنامه اصلی استارتم نوشتم 
ولی فقط منوی اصلی فاکس پرو راست چین شده و منوی ساخته شده توسط من   راست چین نمیشه 
از دوستان عزیز خواهش میکنم راهنمایی کنید چه کنم 
ممنون

----------


## MASOUD_ALIZADEH1

> اقا کیا سوال مربوطه ربطی به فارسی کردن نداره (یعنی اینکه اینکار را اول برنامه انجام داده ام و در تمامی قسمتهای مربوطه فارسی دریافت می کنم) بلکه مشکل درست عمل نکردن کلیدهای مکان نما است (یعنی بعکس هستند کلید راست به سمت چپ می رود و بالعکس) 
> با تشکر


اگه مشکلتون رو درست متوجه شده باشم،فکر کنم راه حلتون استفاده ازFM20باشه كه بايد به کمکOLE Microsoft Forms2.0 Text Box
اونو حل كنيد ، لازمه که یا آفیس نصب کرده باشید یا فایل   fm20.dll رو داشته باشید

----------


## MASOUD_ALIZADEH1

> با عرض پوزش : موفق به راست چین کردن USER MENU نشده ام 
> 1 - در Regional and Language / Advanced گزینه Arabic-Egypt رو انتخاب کردم
> 2 - در منوی tools / options فاکس و در تب Regional آن گزینه Use System Settings را تیک کردم 
> 3 - در فایل Config.FPW هم TITLE , COLLATE , DATE , CENTURY , CURRENCY , CODEPAGE رو طبق دستورالعمل 
> SET کردم 
> 4 - در PROPERTY فرم و .... هم خصیصه RIGHTTOLEFT = T کردم
> 5 - دستور SET SYSMENU TO RTLJUSTIFY رو هم در برنامه اصلی استارتم نوشتم 
> ولی فقط منوی اصلی فاکس پرو راست چین شده و منوی ساخته شده توسط من راست چین نمیشه 
> از دوستان عزیز خواهش میکنم راهنمایی کنید چه کنم 
> ممنون


جوینده یابندست :
بالاخره با جستجوهای زیادی که داشتم راه حل مشکلمو پیدا کردم .
چون من منوم رو در یک TOP LEVEL FORM اجرا میکنم دیگه دستور SET SYSMENU TO RTLJUSTIFY نميتونه كمكي به من براي راست چین کردن منوم بکنه .
راه حل مخصوص این روش رو مایکروسافت داده و اون هم روش MIRROR کردن صفحه است ، یعنی تمام محتویات فرم رو مثل آینه عوض میکنه .
برای این کار باید تکه کد زیر رو داخل LOAD EVENT فرم مربوطه بنویسید .
#DEFINE GWL_EXSTYLE -20
#DEFINE WS_EX_LAYOUTRTL 0x400000
#DEFINE WS_EX_NOINHERITLAYOUT 0x100000
*-- Define the Get window long API
DECLARE INTEGER GetWindowLong IN user32 INTEGER hWnd, INTEGER nIndex 
*-- Define the Set window long API
DECLARE INTEGER SetWindowLong IN user32 INTEGER hWnd, INTEGER nIndex, INTEGER dwNewLong 
*-- Get this form's current style. 
OldLong = GetWindowLong(ThisForm.HWnd, GWL_EXSTYLE)
*-- Set the window extended style RTL non-inheritable.
SetWindowLong(ThisForm.HWnd,GWL_EXSTYLE,BITOR(OldLong,WS_EX_LAYOUTRTL,WS_EX_NOINHERITLAYOUT))

و مشکل حل میشه

----------


## gh_khajehzade

من ابتدا برنامه منو را اجرا ميكنم و بعد فرم را(خاصيت SHOWWINDOW آن IN TOP_LEVEL FORM بايد باشد). و كار ميكنه.
DO menu1.prg
DO FORM formmunu
تو HELP خود فاكس هم How to: Add a Menu to a Top-Level Form رو جستجو كن.به هر حال MIRROR هم جالبه.

----------


## MASOUD_ALIZADEH1

> من ابتدا برنامه منو را اجرا ميكنم و بعد فرم را(خاصيت SHOWWINDOW آن IN TOP_LEVEL FORM بايد باشد). و كار ميكنه.
> DO menu1.prg
> DO FORM formmunu
> تو HELP خود فاكس هم How to: Add a Menu to a Top-Level Form رو جستجو كن.به هر حال MIRROR هم جالبه.


راه حل جدیدتونو تست کردم ، جواب داد . منتهی برای حذف TOOLBAR فاكس چه کنم و اینکه در این روش همیشه یه فرم هم زیر منوم بازه : میشه کاری کرد که HEADER فرمم حذف بشه ، برای زیبایی برنامه فک کنم بهتر باشه

----------


## gh_khajehzade

براي حذف toolbar خط زير رو به برنامه منو اضافه ميكني
HIDE WINDOW "Standard"
براي حذف titlebar از فرم در پنجره خواص فرم
titlebar=off

----------


## MASOUD_ALIZADEH1

> براي حذف toolbar خط زير رو به برنامه منو اضافه ميكني
> HIDE WINDOW "Standard"
> براي حذف titlebar از فرم در پنجره خواص فرم
> titlebar=off


این دو دستور رو هم استفاده کردم ، حالا مشکل اینه که در اجرای مجدد برنامه چون قبلا toolbar فاكس رو hide کردیم به این خط اشکال میگیره 
در ضمن در این روش دستورات read event  , clear events  رو دقیقا کجا بکار ببریم .
برای اطلاعتون در  برنامه main.prg  بعد از تعاریف و غیره : دستورات زیر رو نوشتم 
SET SYSMENU TO 
SET SYSMENU AUTOMATIC
SET SYSMENU TO RTLJUSTIFY
hide windo "standard"
DO MENUS\MYMENU.MPR
DO FORM FORMS\SS.SCX
READ EVENTS
و در فرم SS که علاوه بر  MAXIMIZE بودن IN TOP LEVEL FORM  هم هست در قسمت LOST FOCUS
thisform.Release 
SET SYSMENU TO DEFAULT
show WINDOW "STANDARD"
و در قسمت UNLOAD هم  دستور CLEAR EVENTS  رو نوشتم 
ببخشید که خیلی قضیه رو کشش میدم ولی فک کنم اینطوری هر خواننده دیگه ای هم کاملا مشکلش حل بشه 
با تشکر

----------


## gh_khajehzade

1-تا اونجايي كه من اطلاع دارم read events فقط تو main.prg باشه كافيه(خصوصا براي exe كردن پروژه).cleare events  هم فقط هنگام خروج از برنامه لازم است(هر چند بدون اون هم هنگام خروج من به مشكلي برخورد نكردم)
2-با exe كردن پروژه toolbars خودبخود حذف ميشود.

----------


## MASOUD_ALIZADEH1

ممنون از راهنماییتون

----------

