# پایگاه‌های داده > سایر پایگاه‌های داده > Foxpro >  فارسی نوشتن در text box  های  فاکس پرو

## rezaTavak

من برای فارسی نوشتن توی فاکس پرو از Ocx که در یک کلاس لینک شده استفاده کردم

اگه کسی خواست بگه بفرستم

من قبلا غیر از فاکس با برنامه های دیگر کار کردم اما هیچکدوم فاکس نمیشه





محمد رضا توکل

----------


## binyaz2003

قربون دستت زودتر عضو میشدی اگه میشه بزارش تو فوروم تا همه استفاده کنن
راستی تو همه ویندوز ها درست کار میکنه؟ :?:

----------

سلام
rezatavak  عزیز

اگه ممکنه برا من بفرستینش

ممنون میشم
اصلان

bidad_faryad@hotmail.com

----------


## habdolah

سلام 
اگر میشه برای من هم بفرستید.

----------


## rezaTavak

این کلاس در دو قسمت طراحی شده:
1-    تک خطی
2-    چند خطی
و از دو Ocx به نامهای به ترتیب    EditiText.ocxو MultiText.ocx  استفاده می کنند.
خود اینها چون در VB نوشته شده اند بنابراین به فایل Msvbvm60.dll نیاز دارند. 
کتابخانه کلاس شامل دو کلاس EditText و EditmText است که اولی برای گرفتن متون تک خطی و دومی برای استفاده از متون چند خطی است.

نحوه کار به این صورت است که باید این کلاسها را به TextBox یا EditBox که با فیل کار میکند Set نمایید. برای این منظور باید نام TextBox یا EditBox را در مشخصه ControlSource1 که در کلاس تعریف شده قرار دهید. به طور پیش فرض مشخصه THIS که خود کنترل است تعریف شده است. بعنوان مثال میخواهید آنرا با Form1.Text1 ست نماید باید در مشخصه ControlSource1 مقدار Form1.Text1 یا This.Parent.Text1 قرار دهید. و مشخصه Text1.Visible را .F. نمایید. و محل Text1 و EditText1 را در یکجا قرار دهید.

مشخصه EditMode برای کنترل حالت ویرایش در فرمهاست. اگر این مشخصه .T. باشد این TextBox قابل ویرایش است و گرنه نه. بنابراین در فرمهایتان باید یک مشخصه EditMode که حالت ویرایش را نشان دهد باشد. میتوانید این مشخصه را همچنان که در برنامه با ButtonSet1 ست شده شما نیز ست نمایید. یعنی در رویداد Refresh عبارت زیر را بنویسید:

THIS.EditMode = THIS.ButtonSet1.EditMode

یا میتوانید کلاسی بنویسید و در آن اینکارها را بکنید. مثل کلاس Edit1 در کتابخانه کلاس.

Form1 مثال این برنامه است. 

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

از راهنماییهای خود من را بی بهره مسازید.

البته  تو همه ویندوزهای عربی و چندزبانه امیدوارم درست کار کنه. من در XP  و 98 امتحانش کردم. آخه خودم به اینها بیشتر تکیه دارم.


با تشکر 
امیدوارم مورد استفاده قرار گیرد
خودم که خیلی از این خیلی استفاده کرده ام

----------


## rezaTavak

لطفا بعد از استفاده نظر بدین

----------


## kia1349

دوست عزیز از حس همکاری شما سپاسگذارم و ورود شما را به این فروم خوش آمد میگم

----------


## rezaTavak

با سلام

آقای کیا ممنونم لطف شما مرا نسبت به کار دلگرم خواهد کرد.

__________________________________________________  _____________

----------


## binyaz2003

لطفا مشخص کنید که این ها آیا فقط راست به چپ نویسی رو درست می کنند یا فارسی نویسی؟

----------


## rezaTavak

با سلام

خودتون امتحان کنید

__________________________________________________  _____________

----------


## binyaz2003

من امتحان کردم فقط راست به چپ می کرد . درسته؟

----------


## rezaTavak

سلام

راستش باید ویندوز شما راست به چپ را پشتیبانی کنه و مهم نیست گه ویندوزی باشه
XP,Me,98,2000  همه یکسانند.

من که مشکل خودم را حل کرده شاید 3 ماه طول کشید تا این Ocx را نوشتم

______________________________________

----------


## rezaTavak

سلام

اینم سورسش با کمی تغییرات.

----------


## rezaTavak

سلام

بعد از چند روز تلاش یافتم!!!!!!

میکروسافت چند کنترل را ساخته که در لیست با نامهای Microsoft forms 2.0  شروع میشوند و تمام کنترلهای معرف را پشتیبانی میکند. خب به همون روشی که از این ActiveX این قسمت استفاده میکنید از آنها استفاده کنید و متدها و مشخصاتی که مثل فاکس نیست را در نظر داشته باشید مثلا Text به جای Value و Change به جای InteractiveChange. راستی کامبو باکسش یه خاصیت داره که شاید دنبالش باشید و اون اینه که اگر در لیست اون چیزی که تایپ میکنید شبیه باشه پیداش میکنه مثلا اگر لیست شهرهای ایران داخل اون باشه با تایپ ت تاکستان و ته تهران پیشنهاد میشه! 
یک چیز دیگه همه Hwnd دارند! و با SPy++ هم اعداد hwnd اون را میبینید. ولی برای بدست آوردن آنها باید از توابع Api Platform SDK: Windows User Interface استفاده کنید.

یه چیز دیگه:
1- fm20.dll
2- fm20enu.dll
3- msvbvm60.dll
 این سه کنترل در هنگام توضیع برنامه هایتان باید در شاخه سیستم یا محل نصب برنامه باشد. 


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

راستی اگه چیزی شما پیدا کردید ما را هم بی خبر نگذارید.

----------


## rezaTavak

سلام 
کسی نظری نداره؟

----------


## rahro

> این کلاس در دو قسمت طراحی شده:
> 1- تک خطی
> 2- چند خطی
> و از دو Ocx به نامهای به ترتیب EditiText.ocxو MultiText.ocx استفاده می کنند.
> خود اینها چون در VB نوشته شده اند بنابراین به فایل Msvbvm60.dll نیاز دارند. 
> کتابخانه کلاس شامل دو کلاس EditText و EditmText است که اولی برای گرفتن متون تک خطی و دومی برای استفاده از متون چند خطی است.
> 
> نحوه کار به این صورت است که باید این کلاسها را به TextBox یا EditBox که با فیل کار میکند Set نمایید. برای این منظور باید نام TextBox یا EditBox را در مشخصه ControlSource1 که در کلاس تعریف شده قرار دهید. به طور پیش فرض مشخصه THIS که خود کنترل است تعریف شده است. بعنوان مثال میخواهید آنرا با Form1.Text1 ست نماید باید در مشخصه ControlSource1 مقدار Form1.Text1 یا This.Parent.Text1 قرار دهید. و مشخصه Text1.Visible را .F. نمایید. و محل Text1 و EditText1 را در یکجا قرار دهید.
> 
> ...


سلام 
ممکنه یکبار دیگه این کلاس رو آپلود کنید!؟

----------


## rezaTavak

دیگه از اون استفاده نمیکنم از fm20.DLL استفاده میکنم.

----------


## ابی بنی حسینی

لطف کرده برای من هم بفرستید ممنون میشم.
Yamortezaali@yahoo.com

----------


## sahozy

سلام لطف می کنید به من بگید چطور می تونم مقادیر فارسی که در دیتابیس dbf در FOXPRO هست را در  sql نمایش بدهم؟
آدرس من: zoyasamadi@yahoo.com

----------


## rezaTavak

سلام

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

ضمنا منظورتان از SQL چیست؟

----------

