PDA

View Full Version : حرفه ای: تابع با قابليت انتخاب حالت



HjSoft
جمعه 14 اسفند 1388, 13:15 عصر
سلام ، فرض كنيد كه يك تابع داريم كه كار باز كردن يك فرم را انجام مي دهد . يعني همان تابع يك بار فرم را مي بندد و يك بار باز ميكند و اين عملكرد يعني باز كردن يا بستن فرم به دست ماست . شايد حالت كلي اون رو بتون اينجوري نوشت :

public function set_frm(byval a as string)
select case a :
case "open" :
frm1.show
case "close" :
frm1.hide
end select
end function
حالا براي استفاده كافيه تابع رو بنويسيم و بعد به صورت string حالت رو وارد كنيم . حالا من مي خوام به جاي اينكه حالت رو بنويسيم مثلا set_frm "open" بنويسم Set_frm و به محض نوشتش يك ليست باز بشه و حالت هاي ممكن رو بنويسه . حتما لازم نيست ساختار اون مثل كد بالا بشه و فقط كافيه بشه انتخاب كرد كه فرم بسته بشه يا باز ! vsflex اين قابليت رو داره مثلا شما مي نويسي vs.editable = بلافاصله ميتوني انتخاب كني كه Mouse يا kbd يا both

xxxxx_xxxxx
شنبه 15 اسفند 1388, 11:44 صبح
برای این کار باید کلاس بنویسید (بجای ماژول)
کلاس ها شامل متدها (Methods) و خصوصیات (Propreties) هستند.
متدها در قالب همان Function ها نوشته می شوند. متدهای قابل دستیاب باید به صورت Public نوشته شوند.
پراپرتی ها به دو صورت Let و Get نوشته می شوند.
شکل کلی:


Public Property Get propName() As Variant

End Property
اگر کاری که شما با این کلاس می خواهید انجام بدید در همین حدی باشد که گفتید، نیازی به Property ندارید. فقط دو متد Close و Open رو در قالب دو تابع Public تعریف کنید.

بعد از تعریف کلاس، برای فراخوانی متدهای تعریف شده در آن باید اصطلاحاً یک Instance از آن ایجاد کنید. برای این کار فرض کنید نام کلاس ما className هست. در هرکجا که نیاز به اون کلاس داشتید میتونید اینطور تعریف کنید:


Private instanceName As New className
از اینجا به بعد کلاستون رو با نام جدیدش، یعنی instanceName صدا می زنید. بعد از تایپ کردن instanceName و گذاشتن یک نقطه، متدها و پراپرتی های آن لیست می شود.

موفق باشید/