ورود

View Full Version : سوال: ساختن كلاس



masoud1345
پنج شنبه 16 خرداد 1392, 07:42 صبح
سلام دوستان من مدتي است با ويژوال فاكس كارميكنم البته هنوز مبتدي هستم در بعضي موارد هيچ اطلاعاتي ندارن مثلا همين كلاسها اگر ممكن است يك مثال ساده بزنيد كه با يك فرم باشد تامن بدونم چطور بايستي از اين كلاسها استفاده كنم لطفا به زبان ساده بازگوكنيد

javad_1349
یک شنبه 19 خرداد 1392, 11:03 صبح
باسلام من لازم دیدم که قبل از اینکه نحوه تعریف کلاس را توضیح بدهم این مفهوم کلی از کلاس را برای شما بازگو نمایم

کلاس ها (Classes) :
کلاس ها همان نوع داده تجریدی یا انتزاعی (Abstract) هستند. به عبارتی یک نوع داده هستند که توسط برنامه نویس برای کار با داده ها و توابع و رویدادهای مختلفی تعریف می شوند.


کلاس دارای دو نوع متغیر و متد از نظر دسترسی است:
عمومی Public یا Private یا خصوصی

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

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

خب برای ساخت یک کلاس مانند زیر عمل می کنیم:

DEFINE CLASS class1 AS CUSTOM
ENDDEFINE

در فاکس پرو این دستور کلاس شما را می سازد. که نام کلاس در اینجا class1 است و از قوانین نام گذاری متغیرها در فاکس تبعیت میکند و نوع کلاس با AS مشخص شده که در اینجا CUSTOM است. یعنی اینکه هر کلاسی از روی یک کلاس دیگر باید ساخته شود که از قبل در زبان برنامه نویسی آن تعبیه شده است. مثلا در java تمام کلاسها شاخه ای ازکلاس پایه Object هستند.

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


("obj1= CREATEOBJECT("class1


حال یک چیز واقعی ساخته شد با اینکه کلاس هیچ چیزی در آن تعریف نکردیم اما تمام خواص کلاس Custom را دارد.

دقت کنید که کلاس باید داخل فایل prg تعریف شود و با دستور set procedure فایل prg معرفی شود.
البته لازم به توضیح است که آقای توکل که استاد بنده نیز هستند درتاپیک های مختلف درمورد کلاس توضیخ داده اند که در ذیل مسیرش رو مشخص می کنم


http://barnamenevis.org/archive/index.php/t-91576.htm


موفق باشید

masoud1345
سه شنبه 21 خرداد 1392, 08:02 صبح
سلام من اين دستورات را در فايل prgنوشتم ولي هيج اتفاقي نيفتاد لطفا يه مثال بزنيد از اوا تا اخر كه من نتيجه كار را ببينم يك مثال ساده متشكرم

javad_1349
یک شنبه 26 خرداد 1392, 11:53 صبح
باسلام به برنامه ذیل توجه فرمایید نام این برنامه را fstb با پسوند prg می گذاریم
در این برنامه قصد داریم که یک رشته از فیلد یکی از بانکها را برعکس نماییم فراخوانی این برنامه بصورت ذیل میباشد


(Replace shr1 with fstb(shr این دستور باعث می شود که حروف برعکس شده فیلد شرح در فیلد شرح یک قرار گیرد




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





PARAMETER STR___RTS
PRIVATE I_______I , J_______J , OSTR_RTSO
SET TALK OFF
SET ESCAPE OFF
I_______I = 1
J_______J = LEN(STR___RTS)+1
(OSTR_RTSO = SPACE(J_______J-1
DO WHILE I_______I<J_______J
((OSTR_RTSO = STUFF(OSTR_RTSO,I_______I,1,SUBSTR(STR___RTS,J____ ___J-I_______I,1
I_______I = I_______I+1
ENDDO
(RETURN (OSTR_RTSO


موفق باشید