اولين پروژه و آشنايی با برنامه نويسی بوسيله VB

راهنمای سایت

سایت اقدام پژوهی -  گزارش تخصصی و فایل های مورد نیاز فرهنگیان

1 -با اطمینان خرید کنید ، پشتیبان سایت همیشه در خدمت شما می باشد .فایل ها بعد از خرید بصورت ورد و قابل ویرایش به دست شما خواهد رسید. پشتیبانی : بااسمس و واتساپ: 09159886819  -  صارمی

2- شما با هر کارت بانکی عضو شتاب (همه کارت های عضو شتاب ) و داشتن رمز دوم کارت خود و cvv2  و تاریخ انقاضاکارت ، می توانید بصورت آنلاین از سامانه پرداخت بانکی  (که کاملا مطمئن و محافظت شده می باشد ) خرید نمائید .

3 - درهنگام خرید اگر ایمیل ندارید ، در قسمت ایمیل ، ایمیل http://up.asemankafinet.ir/view/2488784/email.png  را بنویسید.

http://up.asemankafinet.ir/view/2518890/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86.jpghttp://up.asemankafinet.ir/view/2518891/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%DA%A9%D8%A7%D8%B1%D8%AA%20%D8%A8%D9%87%20%DA%A9%D8%A7%D8%B1%D8%AA.jpg

لیست گزارش تخصصی   لیست اقدام پژوهی     لیست کلیه طرح درس ها

پشتیبانی سایت

در صورت هر گونه مشکل در دریافت فایل بعد از خرید به شماره 09159886819 در شاد ، تلگرام و یا نرم افزار ایتا  پیام بدهید
آیدی ما در نرم افزار شاد : @asemankafinet

تحقیق درباره معرفی بخشهای VB از زبانهای برنامه نویسی ویندوز

بازديد: 122

تحقیق درباره معرفی بخشهای VB

 

از زبانهای برنامه نويسی تحت Windows می باشد(که زين پس آن را VB خواهيم خواند)  که برای کدنويسی از دستورات زبان Basic سود می برد.

VB (مانند تمام زبانهای برنامه نويسی تحت ويندوز) با استفاده از تمام امکانات زيبای ويندوز (که باعث فراگيرشدن اين سيستم عامل زيبا و توانمند در ميان کاربران شده است)، طراحی محيطی زيبا و قدرتمند را برای پروژه مورد نظر، بسيار ساده می نمايد.

در حال حاضر، به جرأت می توان گفت که يکی از انتخاب های اصلي برنامه نويسان حرفه ای در سطح جهان برای تهيه پروژه های با قابليت های ويژه، VB می باشد، خصوصاً از VB6 که مايکروسافت عملاً با افزودن توانايی های متنوع بسيار به VB، حتی حاضر شد از ديگر زبانهای معروف تحت ويندوز خود مانند Visual C++ و Visual Foxpro بگذرد و سعی در هدايت تمام برنامه نويسان به سوی VB داشته باشد.

در حال حاضر که به تهيه اين جزوه همت گماردم، نسخه آزمايشی VB.net در بازار وجود دارد ولی عموماً برنامه نويسان ازVB6 استفاده می کنند و لذا ما نيز اين نسخه ازVB را برای آموزش انتخاب می کنيم، هر چند تمام خوانندگان عزيز می دانند که عموماً با فراگيری يک نسخه از يک برنامه، فراگيری نسخه های بعدی آن کار چندان دشواری نخواهد بود.

خوانندگان عزيز توجه داشته باشند که برای فراگيریVB، آشنايی با ويندوز و Basic لازم است. همچنين بهتر است در هنگام مطالعه، VB باز باشد و مطالب را در همان لحظه کار کنند.

هنگامی که VB اجرا می شود، توسط پنجره ای (شکل1)، نوع پروژه ای که می خواهيد طراحی کنيد از شما خواسته می شود.

همان طور که ملاحظه می فرماييد، انواع مختلفی از پروژه ها در اين پنجره وجود دارد که در ادامه به برخی از آنها خواهيم پرداخت، ولی فعلاً نوع استاندارد پروژه های VB يعنی نوع Standard EXE را انتخاب و آن را باز(Open) می کنيم. اين نوع پروژه (که غالب پروژه ها را در بر می گيرد) برای تهيه برنامه های کاربردی(Applications) مورد استفاده قرار می گيرد.
پس از باز کردن پروژه
Standard Exe ، پنجره اصلیVB (شکل 2 ) برای اين نوع پروژه باز می شود:

اين پنجره، علاوه بر آنچه عموماً در پنجره های ويندوز می بينيم (مانند Title Bar وMenu Bar)، شامل چند بخش بسيار مهم می باشد:
1- يک فرم(
Form) خالی با عنوان (Caption)برابر Form1 وجود دارد. اين همان فرمی است که بلافاصله پس از اجرا (Run) شدن برنامه، روی صفحه نمايش، قرار می گيرد (اين پيش فرض قابل تغيير است).
2- نوار ابزار
Standard Buttons که دکمه هايی با کاربرد معمولاً بيشتر را شامل می شود. تعدادی از اين دکمه ها را در ويندوز می شناسيد (مانند Copy, Paste, Undo, Redo, Open وSave) و برخی ديگر را در ادامه خواهيم ديد.
3- پنجره ای سمت چپ تصوير ديده می شود. اين پنجره شامل برخی از کاربردي ترين کنترلهای قابل ديدن (
VCL) می باشد. در ادامه با VCLها آشنا خواهيم شد و از آنها بسيار بهره خواهيم برد. به اين پنجره Tool Bar (جعبه ابزار) گفته می شود.
4- در سمت راست تصوير سه پنجره ديگر ديده می شود. در بالا، پنجره پروژه (
Project)، سپس پنجره مشخصات(Properties) و در پايين، پنجرهForm Layout قرار دارد. پنجرهProject شامل نام تمام اجزای پروژه مانند فرمها، ماژولها(Moduls)،Activex ها و ... می باشد. مثلاً اگر در پروژه ای چند فرم وجود داشته باشد و بخواهيم به فرم ديگری برويم، کافی است نام آن را در اين پنجره دابل کليک نماييم. پنجره Properties، برخی از مشخصه(Property) های مربوط به VCL ای که انتخاب شده (Select) باشد را نمايش می دهد که می توان آنها را در هنگام طراحی(Design Time) تغيير داد (ساير مشخصه ها بايد در هنگام اجرا(Run Time) تنظيم شوند.) در پنجرهForm Layout نيز می توان مکان قرار گيری Form هنگام اجرای برنامه(Run Time) بر روی صفحه نمايش را تعيين کرد (همچنين اين کار را توسط کدنويسي نيز می توان انجام داد و عموماً همين روش هم توصيه می شود و لذا عموماً حتی می توان اين پنجره را به کل بست).


در اين بخش با شمای کلی
VB آشنا شديم، در ادامه درباره VCL ها و نحوه کدنويسي برای آنها مطالب مفيدی خواهيم آموخت.

مفاهيم بنيادی

درVB، شئ (Object) هایبسياری وجود دارد مانند فرمها، دکمه ها، برچسب ها، تصاوير و ... . همانطور که می دانيم هر شئ(Object) دارای يک سری مشخصات(Properties) میباشد. به عنوان مثال اگر يک اتومبيل را به عنوان يک شئ در نظر بگيريم،اين اتومبيل دارای مشخصاتي چون رنگ خاص، وزن خاص، طول و عرض و ارتفاعخاص، ميزان خاص مصرف بنزين و ... می باشد که در تمايز دو اتومبيل ازهم، همين مشخصات هستند که به ما کمک می کنند.
درVB نيز هر Object دارای يک تعداد مشخصه (Property) می باشد. به عنوان مثال يکدکمه(Button) دارای مشخصاتی چون عرض(Width) و ارتفاع(Height) خاص و يايک عنوان(Caption) خاص و ... می باشد.
برخی شئ(object) ها درVB، فقطدر کدنويسي قابل دسترسی هستند(مانند شئADODB که در آينده با آن آشناخواهيد شد) اما برخی ديگر علاوه بر زمان کدنويسي، در زمان طراحی (Design) نيز می توان آنها را بر روی فرمها و در جای دلخواه قرار داد وآنها را تنظيم (Set) نمود. به اشياء نوع اخير، کنترل (Control) گفته میشود.
کنترل ها خود دو گونه اند، برخی علاوه بر زمان طراحی (Design) در زمان اجرا (Run Time) نيز ديده می شوند، به اين نوع کنترل دراصطلاح(Visual Control) VCL گفته می شود که بيشترين انواع کنترلها رادر بر می گيرند (مانند دکمه ها، جدولها، برچسبها و بسياری ديگر که درادامه خواهند آمد) اما برخی ديگر از کنترل ها فقط در هنگام طراحی (Design) ديده می شوند و در هنگام اجرا تنها عمل خاصی انجام می دهند وخود ديده نمی شوند (مانند کنترلTimer)، به اين نوع کنترلها،Non-Visual Control گفته می شود. بايد توجه داشته باشيدکه کنترلهایNon-Visual،ذاتاً درRun Time ديده نمی شوند ولی ممکن است بنابر نيازی و در زمانیخاص از اجرا، خودمان برای يک يا چند VCL نيز مقدار مشخصه Visual آنهارا برابرFalse قرار دهيم که مسلماً در اين حالت با وجود اينکه در آنزمان، اين کنترلها ديده نمی شوند ولی VCL بودن آنها تغييری نکردهاست.
کنترل ها (اعم ازVCL ها و غير آن) معمولاً دارای تعدادی Event می باشند. Event ، رويداد يا رخدادی است که توسط کاربر و معمولاً بااستفاده از ماوس يا صفحه کليد برای يک کنترل خاص روی می دهد.مثلاً يککنترل ممکن است دارای رويداد (Event) Click باشدکه اين نوع رويدادزمانی که کاربر در هنگام اجرای برنامه (Run Time) بر روی آن کنترل خاصکليک نمايد رخ می دهد.برخی Event های معمول ديگر برای کنترلها عبارتنداز: DoubleClick (زمانی که بر روی آن کنترل دابل کليک شود) ، MouseMove (زمانی که نشانگر ماوس بر روی آن کنترل قرار دارد) ، KeyPress (زمانیکه کليدی از صفحه کليد زده شد) ، KeyDown (زمانی که کليدی از صفحه کليدپايين بود) ، KeyUp (زمانی که کليد زده شده برداشته شد) ، MouseDown ، MouseUp و ... که در ادامه با آنها بيشتر آشنا خواهيم شد.
برای هر Event (رويداد) می توان يکEvent Procedure داشت. Event Procedure پاسخی است که يک کنترل زمانی که يک Event رخ می دهد، از خود نشان میدهد. در واقع Event قطعه برنامه ای است که زمانی که بر روی يک کنترل،يک Event رخ می دهد، به طور اتوماتيک اجرا می شود.
کنترلها معمولاًعلاوه بر يک سری مشخصات (Properties) و يک سری رويداد (Event) ، دارایتعدادی نيز متد (Method) می باشد. متدها عملياتهای تعريف شده ای هستندکه توسط آنها يک عمل خاص بر روی کنترلها انجام می شود.
توجه داريمکه تفاوت متدها و Event Procedure ها در اين است که متدها توسط VB ،شناخته شده اند و عملشان هميشه ثابت است، اما Event Procedure ها توسطبرنامه نويس و به دلخواه او تهيه می شود، بنابراين Method های مشابه برروی کنترلهای متفاوت، پاسخ مشابهی دارد ولی ممکن است Event های مشابهبر روی کنترلهای متفاوت با توجه به Event Procedure های مخصوص هر يک،متفاوت باشد (مثلاً رويداد Click برای يک کنترل، کاری انجام دهد و برایکنترلی ديگر، کاری ديگر).
نکته ديگری که بايد به آن توجه داشت اينستکه Procedure ها به طور مستقيم اجرا نمی شوند بلکه فقط زمانی که نامشانفراخوانی شود اجرا می شوند. بنابراين مثلاً در مورد Event Procedure هابايد بدانيم که با اينکه کد مربوط به آنها نوشته شده است ولی تا وقتیکه آن Event خاص (که باعث فرا خوانی Event Procedure مربوط می شود) رویندهد، اين کدها اجرا نخواهند شد.
 

اولين پروژه و آشنايی با برنامه نويسی بوسيلهVB

به عنوان اولين پروژه، قصد داريم فرمی داشته باشيم با دو دکمه Message و Exit که اگر در دکمه Message کليک شد، پيغامی نمايش داده شود و اگر دکمه Exit کليک شد از برنامه خارج شود(شکل3):

ابتدا فرمی که بر روی صفحه نمايش باز است (فعلاً به نام Form 1 ) را به اندازه دلخواه در می آوريم و در حالی که Select است، از پنجره Properties (سمت راست تصوير) ، مشخصه (Property) های زير را چنين Set می کنيم:

1-    مشخصه Name آن را به frmFirstProject تغيير می دهيم.

2-    مشخصه Caption آن را به First Project تغيير می دهيم.

مشخصه Caption معمولاً عنوانها را تغيير می دهد. مثلاً در مورد فرمها، آنچه در اين مشخصه Set شود در Title Bar از آن فرم ديده می شود يا در مورد دکمه ها، آنچه در اين مشخصه قرار داده شود، آن چيزی است که بر روی دکمه ( به عنوان نام دکمه ای که ُکاربر می بيند) ديده می شود.

مشخصه Name يکی از مهمترين مشخصه هايی است که بايد برای تمام کنترلها Set شود.آنچه در اين مشخصه قرار گيرد، نامی است که VB آن کنترل را به اين نام می شناسد (و خصوصاً در هنگام کدنويسی و برای دسترسی به کنترلها، بسيار مورد استفاده واقع می شود). به طور پيش فرض VB برای هر کنترل يک Name در نظر می گيرد، اما در پروژه های واقعی ، معمولاً تعداد کنترلها آنقدر زياد می شوند که نامهای پيش فرض به سختی در ذهن می ماند. برای اين منظور بهتر است به کنترلها، نامهايی را نسبت دهيم که از جهتی با او متناسب باشد. لذا بهتر است اولاً در نام آنها چيزی باشد که نشان از نوع آن کنترل باشد و عبارتی نيز باشد که بيانگر موضوع يا کار فعلی آن باشد. به عنوان مثال شما می بينيد که ما در مشخصه Name از form ، گفتيم که قرار دهيم: frmFirstProject که frm به خاطر تشخيص Form بودن آن است و First Project به خاطر تشخيص اينکه اين فرم برای First Project است. يا مثلاً به فرض اگر بخواهيم دکمه ای به نام Exit بر روی فرمی داشته باشيم، من ترجيح می دهم که نام آن را cmdExit بگذارم که cmd را از Command Button گرفته ام. توجه داريم که اين نامی است که VB آن را می شناسد وگرنه برای زيبايی کار Caption اين دکمه را همان Exit می گذاريم و اين نام گذاری به زيبايی پروژه ما لطمه ای وارد نمی کند.

برای ادامه، دو دکمه (Command Button) بر روی فرم قرار می دهيم (که برای اين منظور از پنجره Controlها که در سمت چپ تصوير است، کنترل Command Button به شکل را دابل کليک می کنيم و يا با يک Click و انتخاب آن، بر روی فرم، به اندازه دلخواه Drag & Drop می کنيم) و جای آنها را به مکان دلخواه مورد نظر (به وسيله Drag & Drop آنها) تغيير می دهيم. آنگاه برای يکی از آنها:

1-    مشخصه Name را به cmdMessage تغيير می دهيم.

2-    مشخصه Caption را به Message تغيير می دهيم.

و برای ديگری تغيير می دهيم:

1- مشخصه Name را به cmdExit .

2- مشخصه Caption را به Exit .

که پس از اين، شمای ظاهری (Interface) برنامه کامل شده است و بايد به کدنويسي آن پرداخت.

اگر بر روی دکمه Exit دابل کليک کنيد (البته هنوز در Design Time هستيم و نه Run TimeEvent Procedure مربوط به رويداد Click (Event) از آن را به صورت زير باز می کند:


Private Sub cmdExit_Click ()

 End Sub


که هر دستوری که در اين Procedure (يعنی بين خط Private و خط End Sub) نوشته شود، در زمان اجرا، وقتی کاربر روی دکمه Exit کليک می کند، اين دستورات اجرا خواهند شد.

دستوری که بايد در cmdExit_Click نوشته شود بسيار ساده است:


Private Sub cmdExit_Click ()

     End

End Sub


دستور End هر جايی از برنامه که اجرا شود فوراً اجرای برنامه را متوقف و از آن خارج می شود.

حال اگر به ترتيبی که در بالا ذکر شد، Event Procedure مربوط به رويداد click از دکمه Message را نيز باز می کنيم و آن را به صورت زير تغيير می دهيم:


Private Sub cmd, Message - Click

     MsgBox “The first project was done successful” و و  “Thanks”

End Sub


پروژه مورد نظر آماده شده شده است. دستور MsgBox (مخفف Message Box )باعث می شود تا يک کادر پيغام بر روی صفحه نمايش ظاهر شود و تا زمانی که دکمه OK از آن را فشار دهيم، پيغامی را نمايش دهد. در اين دستور پارامتر اول، پيغام مورد نظر را به صورت string (يک داده متنی) دريافت مي کند (در VB هر عبارتی که بين دو علامت " " قرار گيرد، string فرض می شود) و پارامتر سوم نيز به عنوان Message Box (که در Title Bar آن آورده خواهد شد) را به صورت متنی دريافت می کند. توجه داريم که بين هر دو پارامتر از علامت کاما (,) استفاده می کنيم و بنابراين در دستور MsgBox برنامه مان برای اينکه پس از پارامتر اول، پارامتر سوم را وارد کنيم بين آن دو پارامتر، دو بار کاما گذاشته ايم.

حال برنامه تان را اجرا کنيد و نتيجه کار را ببينيد (اجرای برنامه در VB توسط کليد F5 صورت می گيرد.

ذکر چند نکته:

1-    اگر بخواهيد فشردن ALT+X همان عمل دکمه Exit را انجام دهد(ايجاد(Hot key) ، کافی است در Caption اين دکمه چنين بنويسيد: E&xit که در اين صورت در زمان اجرا، زير حرف x يک underline (زير خط) می کشد که در ويندوز اين حالت نشانگرHot key داشتن آن حرف است ، همين کار را هم در مورد دکمه Message انجام دهيد.

2-    در هنگام کدنويسي اگر چند حرف اول يک کلمه شناخته شده VB (مانند نام کنترلها و يا Property ها، Method ها و ...) را بنويسيم و CTRL+Space را فشار دهيم، اگر تنها يک کلمه با حرف اول برابر آنچه شما نوشته ايد پيدا کند، بقيه حروف را خود، کامل می کند و اگر تعدادی کلمه با اين مشخصات پيدا کند، ليست آنها را نمايش می دهد که می توانيد يا يکی از آنها را انتخاب کنيد (بر روی کلمه از ليست برويد و کليد space را بزنيد) و يا تعدادی از حروف آن را بنويسيد تا محدوده کلمات مشابه کوتاهتر شود. اين کار را حتماً امتحان کنيد!

3-    زمانی که يک فرم باز می شود، به ترتيب چهار Event بر روی آن رخ می دهد:

·           Initialize 

·         Load

·          Activate

·          Got focus

که زمانی که رويداد اول رخ می دهد، هنوز object های روی فرم ايجاد نشده اند و قابل دسترسی نيستند. اين object ها در load ساخته می شوند، اما هنوز فرم نمايش داده نشده است. وقتی فرم نمايش داده می شود، رويداد Activate و وقتیfocus به آن داده می شود، رويداد Got focus روی مي دهد. (منظور از گرفتن focus اينست که آن کنترل خاص که در اينجا فرم است، کانون تمام پيامها شود، مثلاً اگر کليدی زده شد به آن فرستاده شود و ...).

4-    برای ذخيره کردن پروژه از منوی فايل و گزينه Save استفاده می شود که بايد تمام فرمها، ماژولها، ... و اصل پروژه را جداگانه ذخيره کرد. لذا اگر شما برنامه First Project راsave کنيد، يکبار نام فرم را save می کند (با پسوند.frm) و يکبار فايل پروژه را (با پسوند.VBP).

مثالی ديگر و استفاده از Label و TextBoxها

فرض کنيد بخواهيم فرمی داشته باشيم که دارای دو Text Box (که در VB برای عمليات دريافت اطلاعات از کاربر (DataEntrq) معمولاً از اين کنترل استفاده می شود) برای درجه سيلسيوس و درجه فارنهايت باشد و توسط يک دکمه (و در واقع با فشردن آن توسط کاربر) مقداری که در Text box مربوط به درجه سيلسيوس نوشته شده بود را به فارنهايت تبديل کند و نتيجه را در Text Box مربوط به آن درج نمايد. (توجه: اگر  Cمقدار درجه برحسب سيلسيوس و F مقدار درجه برحسب فارنهايت باشد، تبديل سيلسيوس به فارنهايت از فرمول F=9/5C+32 محاسبه می شود). شکل نهايی فرم را می توانيد در شکل 4 ببينيد.

برای اين منظور، از جعبه ابزار (جعبه حاوی کنترلها) ، دو برچسب (Label) که در جعبه ابزار به شکل ديده می شود را بر روی فرم قرار می دهيم(برچسب(Label) ها در VB معمولاً زمانی استفاده می شود که بخواهيم بر روی فرم، عبارتی را به کاربر نشان دهيم که او قابليت تغيير آن را نداشته باشد.) آنها را بوسيله Drag & Drop به مکان دلخواه منتقل می کنيم و برای يکی از آن دو:

1-    مشخصه Name را به lblCelsius

2-    مشخصه Caption  را به Celsius

و برای ديگری:

1- مشخصه Name را به lblFahrenheit

2- مشخصه Caption را به Fahrenheit

تغيير می دهيم. توجه داريم که در نامگذاری Label ها با سه حرف اول lbl آغاز کرده ايم. همچنين توجه داريم که در شکل 4 ، بر روی فرم، عبارات Celsius و Fahrenheit در واقع همين دو Label هستند.

نکته: برای Label هايک مشخصه (Property) ديگر به نام Auto Size وجود دارد که اگر مقدار آن را به True تغيير دهيم، اندازه (size) آن به طور اتوماتيک به اندازه متن (caption) داخل آن خواهد شد و بنابراين معمولاً بهتر است اين مشخصه را نيز set کنيم.

حال دو Text Box (جعبه متن) در مقابل اين Label (Text Box ها در جعبه ابزار به شکل ديده می شوند، معمولاً برای نمايش و دريافت اطلاعات به طور توأم به کار می رود (بر عکس Label ها که فقط وظيفه نمايش اطلاعات را به عهده داشتند) و خصوصاً برای فرمهای DataEntrq (دريافتی اطلاعات) بسيار مناسب هستند. پروژه فعلی ما، نمونه ای کوچک از فرمهای DataEntrq است) و مناسب با هر يک از برچسب ها، برای يکی از آن دو Text Box :

1-    مشخصه Name رابه txtCelsius تغيير می دهيم.

2-    مشخصه Text را خالی می کنيم.

و برای ديگری:

1_ مشخصه Name را به txtFahrenheit تغيير می دهيم.

3-    مشخصه Text را خالی می کنيم.

واضح است که در نامگذاری TextBox ها نيز از قرارداد سه حرف اول متناسب با نوع شئ، استفاده کرديم و سه حرف اول آنها را txt گذاشتيم.

مشخصه Text در Textbox ها آن متنی است که داخل آن متنی است که داخل آن نوشته می شود(شبيه مشخصهCaption در Label ها) و چونقرار است کاربرما آن را وارد کند، آن را خالی (NULL) کرديم.

حال يک دکمه (Command button) نيز به فرم اضافه و:

1-    مشخصه Name را به cmdConvent

2-    مشخصه Caption را به convent

تغيير می دهيم.

خوب، ظاهر (Interface) برنامه آماده شد. حال به کدنويسی برای آن می پردازيم. اين اولين باری است که می خواهيم در زمان اجرا (Run Time) از مشخصه ای استفاده کنيم (مشخصه Text از txtCelsiusکه توسط کاربر وارد شده) و مشخصه ای را در اين حال (Run Time) تغيير دهيم (مشخصه Text ازtxtFahrenheit که بايد نتيجه را بنويسد)

در VB هنگام کدنويسی برای Run Time هر زمان بخواهيم از يک Object استفاده کنيم، کافی است نام (Name) آن را بنويسيم و اگر بخواهيم به يکی از مشخصه های آن دست يابيم، کافی است پس از نام آن يک نقطه (Dot) قرار دهيم و سپس نام مشخصه (Property) مورد نظر خورد را بنويسيم.

با توجه به اين مطلنب، ديگر نوشتن کدهای مثال فوق کار چندان دشواری نيست. اگر بر روی دکمه Convent (البته در Design Time ) دابل کليک نماييد، در اينصورت Procedure مربوط به رويدادِ(Event) کليک از آن باز می شود که کافی است در آن نوشته شود:

txtFahrenheit.Text = (9/5*txtCelsius.Text) + 32

يعنی Procedure بايد به شکل زير شود:


Private Sub cmdConvent_Click ()

     txtFahrenheit.Text = (9/5*txtCelsius.Text) +32

End Sub


واضح است که وقتي مشخصه Text از يک Text Box در سمت يک تساویِ جايگزينی قرار می گيرد، مقدار فعلی آن در عمليات شرکت می کند و وقتی اين مشخصه در سمت چپ اين جايگزين قرار می گيرد، مقادير محاسبه شده در آن قرار می گيرد.
بنابراين،
Procedure فوق می گويد که وقتی بر روی دکمه Convent کليک شد، هر مقداری که کاربر، داخل جعبه Celsius نوشته باشد را در 9/5 ضرب و با32 جمع کن و مقدار نهايی را داخل جعبه مربوط به Fahrenheit بنويس.
اين برنامه را حتماً بنويسيد، آن را اجرا منيد و با نحوه استفاده از
Property ها در اين کدنويسی بری Run Time آشنا شويد. در ادامه، بيشتر با اين نوع استفاده از Property ها (يعنی set کردن در کدنويسی بجای set کردن در پنجره Properties از Design Time) مواجه خواهيم شد. و مهم است که اين نوع استفاده را خوب درک کنيم.
نکته: مشخصه
Text برایTextBox ها و مشخصه Caption برای Label ها، مشخصه های پيش فرض آنها محسوب می شوند و اگر نام آنها را بدون هيچ مشخصه ای بنويسيمف اين مشخصه ها در نظر گرفته می شود، اذا مثلاً در Procedure بالا می توانستيم بجای txtCelsius.Text از خود txtCelsius نيز استفاده کنيم.
 

 

 

تغييری در وضعيت مثال قبل و استفاده از رويداد Keyup

فرض کنيد بخواهيم مثال قبل را طوری تغيير دهيم که با نوشتن هر رقمی در txtCelsius ، بدون نياز به فشردن کليد، نتيجه به طور خودکار در txtFahrenheit نوشته شود.مثلاً به محض اينکه عدد8 رازديم، تبديل شده 8 را به فارنهايت بنويسيد و به محض فشردن کليد 0 (روی هم شده است80) تبديل شده 80 را به فارنهايت بنويسد و ...

ابتدا کدهای نوشته شده برای cmdconvert را پاک کنيد و سپس خود کليد را نيز از روی فرم حذف کنيد تا به سراغ کدنويسی برای خودText Box ها برويم.

Text Box ها دارای جهار رويداد (Event) مهم می باشند:

KeyDown – KeyUp – KeyPress – Change

زمانی که فوکوس(تمرکز) به يک Text Box داده شود، اگر کليدی از صفحه کليد زده شود، ابتدا رويدادKeyPress رخ می دهد ( و اين به سيستم می فهماند که يک کليدی فشرده شد) ، سپس رويداد KeyDown رخ می دهد ( و اين به سيستم می فهماند که کليد زده شده، تازه زده شده است و هنوز فشرده است) و وقتی دستمان را از روی کليد برداريم، رويداد KeyUp رخ می دهد.

رويداد Change نيز زمانی که هر تغييری در مقدار داخل Text box انجام شود، روی می دهد (و لذا مثلاً اگر کليدی مثل Arrow Keys (کليدهای حرکتی) که تغييری در مقدار داخل Text Box انجام نمی دهد زده شود، رويداد Change رخ نمی دهد.)

 توجه داشته باشيم که KeyDownKeyUp) برای همه کليدهای صفحه کليد رخ می دهد اما رويداد KeyPress برای برخی مثل Arrow Keys رخ نمی دهد.

Event Procedure مربوط به KeyDown و KeyUp دارای دو آرگومان (پارامتر) هستند:

1-    پارامتر keycode که کد اسکی کليد فشرده شده را بر می گرداند.

2-    پارامتر Shift که يکی از چهار مقدار 0 و 1 و 2 و 3 را بر می گرداند. اگر مقدار برگشتی آن يک باشد، يعنی در حال فشردن کليد زده شده، کليد Shift پايين بوده، مقدار برگشتی دو نشانگر پايين بودن کليدAlt و مقدار برگشتی برابر سه، نشانگر پايين بودن کليد Control می باشد و صفر بودن آن، فشردن کليد بدون پايين بودن هيچ يک از اين سه کليد می باشد.  و Event Procedure مربوط به KeyPress تنها يک آرگومان KeyAscki دارد که کد اسکی کليد فشرده شده را برمی گرداند.

با توجه به مطالب گفته شده، کافی است برای رويدادِ (Event)KeyUp از txtCelsius چنين بنويسيم:


Private Sub txtCelsius_KeyUp (KeyCode As Integer, shift As Integer)

     txtFahrenheit = (Val (txtCelsius)*9/5) + 32

End Sub


ذکر چند نکته:

1-    اگر بر روی يک TextBox در Design Time دابل کليک کنيد، به طور پيش فرض، رويداد Change از آن را برای کدنويسی باز می کند. اگر می خواهيم Event Procedure رويدادهای ديگر را بياوريم، کافی است از Combo Box منوی باز شونده عمودی کرکره ای که يک فلش رو به پايين سمت راست خود برای باز شدن منو دارد) سمت راست بالای صفحه کدنويسی، يکی از Event Procedure ها را به دلخواه انتخاب کنيم. Combo Box سمت چپ آن هم نام تمام Object های استفاده شده در آن فرم خاص را دارد که هر کدام انتخاب باشد، در Combo Box سمت راست، Procedure های آن Object خاص را ليست خواهد کرد. در شکل 5 برخی از رويدادهای مربوط به txtCelsius را می بينيد.

 

 2-  همانطور که می بينيم در Procedure فوق برای Text Box ها، نام هيچ مشخصه ای را نياورديم که همانطور که قبلاً توضيح داده شد، در اينصورت به طور پيش فرض، مشخصه Text برای آنها در نظر گرفته می شود.

3-  تابع Val (مخفف Value) مقدار عددی يک string را برمی گرداند. از آنجا که مقدار داخل txtCelsius از نوع  string 0متنی) است ولی بايد بر روی آن عمل ضرب و تقسيم و جمع را انجام دهيم. ابتدا آن را توسط تابع Val، عددی نموديم. (هر چند VB تا جای ممکن سعی می کند خودش اين تبديلات را اگر ما هم نگذاريم، انجام دهد ولی بهتر است عادت شود، برای جلوگيری از خطاهای احتمالی، شرايط هر موقعيت را فراهم آوريم.)

ادامه:

آخرين کاری که بايد برای پروژه Second Example انجام دهيم، جلوگيری از خطای Type Miss Mach است. اين خطا زمانی روی می دهد که در يک عمليات، مقادير مناسب نباشند. مثلاً اگر بخواهيم مقدار متنی “Ali” را در مثلاً 5 ضرب کنيم، اين خطا (که در VB، خطای شماره 13 است) رخ می دهد.

در برنامه ما هم، اگر کاربر، در txtCelsius بجای يک عدد، حرفی را بنويسد، هنگام ضرب شدن در 9/5، همين خطا رخ خواهد داد.

برای جلوگيری از بروز خطا و گرفتن کنترل خطا بدست برنامه، از تابع On Error استفاده می کنيم. اگر Procedure مربوط به رويداد Key Up از txtCelsius را به صورت زير تغيير دهيم:


Private Sub txtCelsius–KeyUp (KeyCode As Integer, shift as Integer)

     On Error Goto xx

     txtFahrenheit = (txtCelsius * 9/5) + 32

     Exit Sub

xx:

     IF Err. number = 13 then

     txtFahrenheit = “can’t convert “

     End IF

End Sub


در اينصورت تابع On Error می گويد که وقتی به خطايی در ادامه برخوردی به خطی از Procedure که دارای برچسب xx (يک برچسب اختياری) است برو (Goto xx) . اگر برنامه به اين خط برود (يعنی وقتی خطايی رخ داد) ، بررسی می کند اگر شماره خطای رخ داده شده (Err يک Object هميشگی در VB است که مشخصه number از آن، شماره شماره خطای رخ داده را در خود نگهداری می کند) برابر B بود، بجای convert کردن، در txtFahrenheit بنويسيدcan’t convert  (اميدوارم نحوه بکارگيری دستورات شرطی (IF sentences) را بدانيد). تنها نکته ای که هست اينکه اگر خطا رخ نداد و convert انجام شد، ديگر نبايد به خط xx وارد شود و لذا از دستور Exit sub استفاده کردع ايم. اين دستور در هر جايی از يک sub اجرا شود، بلافاصله از آن خارج می شود و دستورات ديگر را اجرا نمی کند.

 

 

مثالی برای رويداد Keypress

فرض کنيد بر روی فرم، يک Text Box به نام txtUserName قرار داده ايم و بخواهيم کاربر، هر حرفی را داخل آن نوشت، با حرف بزرگ انگليسی زده شود (يعنی اگر وارد کرد a، در Text Box درج شود A) در اين صورت کافی است برای رويداد KeyPress از آن بنويسيم:


Private Sub txtUserName_KeyPress (KeyAscii As Integer)

     KeyAscii = ASC (Ucase (Chr (KeyAscii)))

End Sub


دستور بکار رفته در اين Procedure می گويد که کد اسکی کليد فشرده شده را (توسط آرگومانِ keyAscii) دريافت کن، کاراکتر آن را (توسط تابع Chr) پيدا کن، آن کاراکتر را به حرف بزرگ تبديل کن (توسط تابع Ucase مخفف Upper Case) و آنگاه کد اسکی حرف تبديل يافته را (توسط تابع ASC) پيدا کن و دوباره در آرگومان keyAscii قرار بده. به اين ترتيب کاربر هر کليدی را که فشار دهد، حرف بزرگ آن در Text Box درج می شود.

برخی مشخصه های Text Box ها:

Name -1 : نامی که VB آن را با اين نام می شناسد.

Alignment -2: تراز متن داخل Text Box (راست چين، وسط چين، چپ چين)

Appearance -3: با مقدار Flat و 3D که سه بعدی بودن يا تخت بودن آن را مشخص می کند.

Back Color -4: رنگ زمينه Text Box

Border Style -5: که تعيين می کند که text Box حاشيه داشته باشد (fixed Single) و يا خير (None)

Enable -6: اين مشخصه برای هر کنترلی False باشديعنی آن کنترل غير فعال است (رنگ خاکستری شده کنترلها در ويندوز نمايشگر False بودن Enable آن است).

Font -7: نوع فونت متن

Fore Color -8: رنگ متن

Height -9: ارتفاع Text Box

Left -10: فاصله گوشه چپ و بالای Text Box از Container (دربرگيرنده) آن (تا به حال يک دربرگيرنده (container) را ديده ايم که فرمها می باشند. Container ها به کنترلهايی گويند که کنترلهای ديگر می توانند بر روی آن قرار گيرند مثل کنترل Frame يا کنترل Picture).

Locked -11: که اگر مقدار آن True باشد، Text Box توسط کاربر، قابل ويرايش (Edit) نخواهد بود.

Max Length -12: حداکثر تعداد کاراکتری که می تواند داخل Text Box قرار گيرد که اگر مقدار آن صفر باشد، محدوديت تعداد نخواهد داشت.

Mouse Icon -13: آيکون ماوس وقتی روی آن قرار می گيرد (به شرطی که مشخصه بعدی يعنی Mouse Pointer بابر Custom تغيير داده شود.

Mouse Pointer -14: نمايشگر ماوس وقتی روی آن است که اگر برابر Custom شود، هر چه در Mouse Icon، set شده باشد، آيکون ماوس می شود.   

Multi Line -15: اگر مقدار آن برابر True شود، می توان در Text Box، چند خطی نوشت و در واقع آن را شبيه يک Editor نمود.  

Password Char -16: گه اگر يک کاراکتر در آن قرار گيرد، هرچه داخل Text Box نوشته شود، با آن کاراکتر ديده می شود (شما در وارد کردن Password در هر ويندوز مسلماً با مقدار * برای Password برخورد داشته ايد).

Right To Left -17: که اگر مقدار آن True باشد، پاراگراف راست به چپ می شود (مثل آنچه ما در فارسی نوشتن به آن نيازمنديم).

Scroll Bars -18: اگر مقدار Multi Line برابر True باشد، توسط مشخصه Scroll Bars می توان وجود scrollbar عمودی (vertical) ، افقی (horizontal) و يا ترکيبی از آن دو (Both) را داشت.

Tab Index -19: ترتيب پرش از کنترل به کنترل ديگر هنگام زدن کليد Tab. مثلاً اگر سه Text Box بر روی فرم داشته باشيم و مقدار Tab Index آنها به ترتيب 0 و 1 و 2 بگذاريم، در هنگام اجرا، فوکوس به Text Box با مقدار Tab Index برابر صفر داده می شود که اگر کليد Tab را بزنيد، فوکوس به Text Box با مقدار Tab Index ببرابر يک داده خواهد شد و الی آخر.

Tab Stop -20: که اگر مقدار آن برای کنترلی False باشد، با زدن کليد Tab هيچگاه فوکوس به آن داده نخواهد شد (با Tab نمی توان روی آن رفت).

Tag -21: عملاً کار خاصی انجام نمی دهد و فقط می توانيم چيزی را در آن ذخيره کنيم که بعداً خودمان از آن استفاده کنيم.

Tool Tip Text -22: که مقدار آن هر چه باشد وقتی در Run Time ماوس را لحظه ای روی آن کنترل خاص نگه داريم، يک راهنمای کوتاه زرد رنگ با متن برابر مقدار تعريف شده در Tool Tip Text از آن بيرون خواهد آمد.

Top -23: فاصله گوشه راست و بالای کنترل از container (دربرگيرنده) خود.

Visible -24: که اگر مقدار آن False باشد، آن کنترل توسط کاربر (يعنی در Run Time) ديده نخواهد شد.

Width -25: عرض کنترل

توجه:   

1-    بسياری از مشخصات فوق در کنترلهای ديگری غير از Text Boxها هم با همان کاربرد، وجود دارند.

2-    از مشخصاتی که در بالا آورده نشد، بزخی را در جای خود توضيح خواهيم داد.

نکته:

می توان برنامه را توسط کليد F8، خط به خط اجرا کرد. در اين حال اگر ماوس را روی هر متغيری در پنجره کدنويسی نگه داريم، مقدار فعلی آن را به صورت Tool Tip می نويسد.

از اين مورد، در Debug کردن و يافتن خطاهای برنامه کمک بسياری می توان گرفت.

همچنين اگر در پنجره Immediate در هنگام Run Time دستوری را بنويسيم، اين دستور بلافاصله اجرا خواهد شد. مثلاً می توانيم يک متغير را فوراً مقدار دهی کنيم يا ...

همچنين اگر بر روی هر خطی کليد F9 را بزنيم، يک Break (شکست) روی آن خط ايجاد می کند، حال اگر کليد F5 را بزنيد، برنامه اجرا می شود تا به آن خطِ Break شده برسد و در آنجا متوقف می شود. که برای ادامه برنامه می توان بسته به مورد، از F5 يا F9 استفاده کرد.

 

 

 

 

منبع : سايت علمی و پژوهشي آسمان--صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: دوشنبه 11 اسفند 1393 ساعت: 11:02 منتشر شده است
برچسب ها : ,,
نظرات(0)

شبکه اجتماعی ما

   
     

موضوعات

پيوندهاي روزانه

تبلیغات در سایت

پیج اینستاگرام ما را دنبال کنید :

فرم های  ارزشیابی معلمان ۱۴۰۲

با اطمینان خرید کنید

پشتیبان سایت همیشه در خدمت شماست.

 سامانه خرید و امن این سایت از همه  لحاظ مطمئن می باشد . یکی از مزیت های این سایت دیدن بیشتر فایل های پی دی اف قبل از خرید می باشد که شما می توانید در صورت پسندیدن فایل را خریداری نمائید .تمامی فایل ها بعد از خرید مستقیما دانلود می شوند و همچنین به ایمیل شما نیز فرستاده می شود . و شما با هرکارت بانکی که رمز دوم داشته باشید می توانید از سامانه بانک سامان یا ملت خرید نمائید . و بازهم اگر بعد از خرید موفق به هردلیلی نتوانستیدفایل را دریافت کنید نام فایل را به شماره همراه   09159886819  در تلگرام ، شاد ، ایتا و یا واتساپ ارسال نمائید، در سریعترین زمان فایل برای شما  فرستاده می شود .

درباره ما

آدرس خراسان شمالی - اسفراین - سایت علمی و پژوهشی آسمان -کافی نت آسمان - هدف از راه اندازی این سایت ارائه خدمات مناسب علمی و پژوهشی و با قیمت های مناسب به فرهنگیان و دانشجویان و دانش آموزان گرامی می باشد .این سایت دارای بیشتر از 12000 تحقیق رایگان نیز می باشد .که براحتی مورد استفاده قرار می گیرد .پشتیبانی سایت : 09159886819-09338737025 - صارمی سایت علمی و پژوهشی آسمان , اقدام پژوهی, گزارش تخصصی درس پژوهی , تحقیق تجربیات دبیران , پروژه آماری و spss , طرح درس