PDA

View Full Version : فارسی نوشتن در text box های فاکس پرو



rezaTavak
چهارشنبه 22 بهمن 1382, 21:45 عصر
من برای فارسی نوشتن توی فاکس پرو از Ocx که در یک کلاس لینک شده استفاده کردم

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

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





محمد رضا توکل

binyaz2003
پنج شنبه 23 بهمن 1382, 11:32 صبح
قربون دستت زودتر عضو میشدی اگه میشه بزارش تو فوروم تا همه استفاده کنن
راستی تو همه ویندوز ها درست کار میکنه؟ :?:

پنج شنبه 23 بهمن 1382, 16:44 عصر
سلام
rezatavak عزیز

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

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

bidad_faryad@hotmail.com

habdolah
پنج شنبه 23 بهمن 1382, 21:52 عصر
سلام
اگر میشه برای من هم بفرستید.

rezaTavak
جمعه 24 بهمن 1382, 02:14 صبح
این کلاس در دو قسمت طراحی شده:
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
جمعه 24 بهمن 1382, 13:51 عصر
لطفا بعد از استفاده نظر بدین

kia1349
یک شنبه 26 بهمن 1382, 13:53 عصر
دوست عزیز از حس همکاری شما سپاسگذارم و ورود شما را به این فروم خوش آمد میگم

rezaTavak
دوشنبه 27 بهمن 1382, 01:06 صبح
با سلام

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

__________________________________________________ _____________

binyaz2003
سه شنبه 28 بهمن 1382, 12:00 عصر
لطفا مشخص کنید که این ها آیا فقط راست به چپ نویسی رو درست می کنند یا فارسی نویسی؟

rezaTavak
چهارشنبه 29 بهمن 1382, 00:04 صبح
با سلام

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

__________________________________________________ _____________

binyaz2003
شنبه 02 اسفند 1382, 00:35 صبح
من امتحان کردم فقط راست به چپ می کرد . درسته؟

rezaTavak
دوشنبه 04 اسفند 1382, 00:46 صبح
سلام

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

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

______________________________________

rezaTavak
سه شنبه 19 آبان 1383, 20:10 عصر
سلام

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

rezaTavak
شنبه 23 آبان 1383, 23:34 عصر
سلام

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

میکروسافت چند کنترل را ساخته که در لیست با نامهای 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
سه شنبه 26 آبان 1383, 11:47 صبح
سلام
کسی نظری نداره؟

rahro
سه شنبه 09 بهمن 1386, 10:47 صبح
این کلاس در دو قسمت طراحی شده:
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
سه شنبه 09 بهمن 1386, 16:15 عصر
دیگه از اون استفاده نمیکنم از fm20.DLL استفاده میکنم.

ابی بنی حسینی
سه شنبه 09 بهمن 1386, 17:48 عصر
لطف کرده برای من هم بفرستید ممنون میشم.
Yamortezaali@yahoo.com

sahozy
شنبه 13 بهمن 1386, 10:52 صبح
سلام لطف می کنید به من بگید چطور می تونم مقادیر فارسی که در دیتابیس dbf در FOXPRO هست را در sql نمایش بدهم؟
آدرس من: zoyasamadi@yahoo.com

rezaTavak
شنبه 13 بهمن 1386, 14:34 عصر
سلام

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

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