نکته: یک روش خوب در برنامه نویسی اینه که یواش یواش قسمتهای مختلف برنامه رو کامل کنیم. مثلا ما که میخواهیم ماشین حساب بنویسیم که هم جمع انجام بده و هم تفریق و ... نباید از اول همه این قسمتها رو باهم نوشت. میشه اول یک قسمت رو نوشت و آزمایش کرد، بعد قسمتهای دیگه رو بهش اضافه کرد.
خوب، من از جعبه ابزار سمت چپ صفحه «Text box» رو انتخاب میکنم (با یکبار کلیک کردن بر روی آن) بعد روی فرم برنامه شروع میکنم به کشیدن یک کادر متن. سعی میکنم که اندازه و قیافه مناسبی پیدا کنه. بعد یک کادر دیگه به همون اندازه زیر اون اضافه میکنم. تا حالا قیافه فرم من بصورت زیر در اومده. قیافه فرم شما چه شکلی شده؟
دوتا کادر Textbox اندازه هم زیر هم بکشید.
بعد یک دکمه برای عمل جمع کنارشون اضافه میکنیم و یک کادر هم برای نشون دادن نتیجه عمل جمع. من این کارها رو کردم و نتیجه رو میتونید در زیر ببینید.
این هم شد قیافه برنامه
آخه شما بگین این هم شد قیافه، بیاین همین قیافه که نوشتیم رو امتحان کنیم. برای اجرای برنامهها توی ویژوال بیسیک کافیه دکمه «F5» روی کیبرد رو بزنید یا از نوار ابزار بالای صفحه دکمه اجرا رو بزنید.
کلی بزک و تزیین لازم داره. اول از همه به دوتا کادر که اول کشیدیم نگاه کنید، داخلشون نوشته Text1 و Text2. این متنهایی که داخلش نوشته، متنهای پیشفرض خود ویژوال بیسیکه و ما نمیخوایم اینا اینجا باشن.
برنامه رو ببندید (با زدن دکمه X بالای برنامه یا زدن دکمه توقف در ویژوال بیسیک) و بر روی کادر متن اولی (Text1) کلیک کنید. اینطوری پنجره خصوصیات که سمت راست ویژوال بیسیک قرار گرفته، خصوصیات مربوط به Text1 رو نشون میده. توی این لیست به این بلند بالایی که میبینید، اگه یه کم پایین برین، اون آخرهای لیست یک خصوصیت داره به اسم «Text» که متن داخل کادر رو تعیین میکنه. برای اینکه این کادر خالی بشه کافیه هرچی داخل خصوصیت «Text» اون نوشته رو پاک کنید.
این کار رو برای «Text2» و «Text3» هم انجام بدین.
بعدش روی دکمهای که گذاشتیم (همون «Command1» رو میگم) کلیک کنید و توی خصویاتش دنبال «Caption» بگردین. میبینید که مقدار این خصوصیت برابر «Command1» قرار داده شده. چون ما میخوایم این دکمه کار عمل جمع رو انجام بده، پس لازمه یک اسم با معنی بهش بدیم که کسی که با این برنامه کار میکنه، بفهمه این دکمه قراره چیکار کنه. پس برای این برنامه بهتره اسم این دکمه رو یه چیزی مثل «Add» یا «Jam Kon» یا «جمع» قرار بدیم.
من «Caption» دکمه رو گذاشتم «جمع کن» و «Text» تمامی کادرهای متن رو پاک کردم.
نکته: جالبه که هم دکمه و هم کادر متن یه خصوصیت دارن که متنشون رو نشون میده ولی اسمهاشون فرق میکنه و همونطور که دیدیم خصوصیتی که متن یک کادر متنی ساده رو تعیین میکنه «Text» و خصوصیتی که نوشته روی یک دکمه رو تعیین میکنه «Caption» هست.
این توی ویژوال بیسیک تقریبا یه قانونه. هر متنی که کاربر موقع اجرای برنامه بتونه تغییر بده توی خصوصیت «Text» قرار میگیره و هر متنی که فقط جنبه نمایشی داشته باشه و برنامه نویس فقط بتونه اون رو تغییر بده داخل خصوصیت «Caption» قرار داره. در این مورد بعدا بیشتر صحبت میکنیم.
برای شروع بیاین یکی دوتا کد رو تست کنیم.
توجه کنید که اصلا نمیخوایم این دستورها رو کامل یاد بگیریم، فقط میخوایم یکی دوتا اصل برنامه نویسی و قالب کدهای ویژوال بیسیک رو ببینید. همین.
حالا روی دکمه دوبار کلیک کنید (بابا، همون دابل کلیک خودمون) تا به قسمت کد نویسی بریم. الان که توی قسمت کد نویسی هستیم، باید خود ویژوال بیسیک دو خط کد رو بطور اتوماتیک اضافه کرده باشه.
Private Sub Command1_Click()
End Sub
کافیه هر کدی که دلمون میخواد هنگام فشار داده شدن دکمه «Command1» اجرا بشه رو بین این دو خط بنویسیم. دقت کنید که این کدی که نوشته، «Command1_Click» هست یعنی وقتی این تیکه از کد اجرا میشه که «Command1» کلیک شده باشه. بین این دو خط بنویسین:
Private Sub Command1_Click()
Beep
End Sub
حالا برنامه رو اجرا کنید و روی دکمه کلیک کنید، باید یک صدای بیپ با هر بار کلیک کردن روی دکمه شنیده بشه.
برای اینکه برنامه یک کم باحال تر بشه، کد زیر رو جایگزین کد قبلی کنید و برنامه رو اجرا کنید و روی دکمه «جمع کن» کلیک کنید.
Private Sub Command1_Click()
MsgBox "سلام"
End Sub
نتیجه جالبه، یک کادر باز میشه و توش مینویسه «سلام» و یک دکمه «OK» داره که باید کلیکش کنید تا بسته بشه.
تنها چیزی که لازمه فعلا بدونید، دستور «MsgBox» هست که مخفف «Message Box» بوده و هرچی جلوش باشه رو توی یک کادر نشون میده.
حالا بیاین بهجای اینکه هر دفعه که روی دکمه کلیک میکنیم همینطوری خنگولآبادی سلام کنه، بیاد و متنی که داخل کادر متن اول قرار داره رو بنویسه.
Private Sub Command1_Click()
MsgBox Text1.Text
End Sub
اگه کد بالا رو بنویسید و برنامه رو اجرا کنید، بعد داخل کادر متن اولی یک چیزی تایپ کنید، بعدش دکمه «جمع کن» رو فشار بدین، میبینید که همون چیزی که توی کادر متن نوشتیم رو نشون میده.
این یک کد خیلی قشنگه، دقت کنید ما چیکار کردیم، اگه از مثال قبل یادتون باشه، ما جلوی «MsgBox» هرچی تایپ میکردیم اون هم عینا نشونمون میداد، حالا ما جلوش نوشتیم «Text1.Text» رو نشون بده. قبلا دیدیم که کادرهای متن یه خصوصیت دارن به اسم «Text» که کاربر هرچی توش تایپ کنه توی این خصوصیت قرار میگیره.
برای این برنامه ما هم همین رو میخوایم یعنی میخوایم خصوصیت متن این کادر متن رو نشون بدیم، پس باید یجوری به این ویژوال بیسیک بفهمونیم که خصوصیت «Text» این کادر خاص رو به ما برگردونه. چون ما دوتا کادر متن دیگه هم داریم، از کجا بهش بگیم متن کدوم یکی رو میخوایم؟
برای این کار کافیه اسم اون کادری رو که میخوایم اول تایپ کنیم وبعد با یه نقطه اون خصوصیت رو جلوش بنویسیم. اینطوری مقدار اون خصوصیت به دست میاد. پس ما برای این مثال نوشتیم «Text1.Text» یعنی مقدار خصوصیت «Text» از کادر «Text1» رو به ما بده.
خوب دیگه فکر کنم مقدمه چینی بس باشه، بریم سراغ کد نویسی برای برنامه جمع
با اینهمه جفنگیاتی که قبلا گفتم دیگه فکر نکنم چیزی لازم باشه و یه راست میریم سراغ کد برنامه. پس کافیه با دوبار کلیک کردن بر روی دکمه وارد قسمت کد نویسی بشین و کدهای زیر رو بنویسین:
Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
Text3.Text = a + b
MsgBox a + b
End Sub
حالا قبل از اینکه برنامه رو تفسیر کنیم، اجراش کنید ببینید چجوری کار میکنه؟ موقعی که اجراش کردین، توی کادر اول یه عددی مثلا 10 وارد کنید، توی کادر دوم هم یه عدد دیگه مثلا 20 وارد کنید و دکمه «جمع کن» رو بزنید.
میبینید که جمع دوعددی که توی کادر اول و دوم نوشتین رو نشون میده. حالا بریم سراغ تفسیر کد که هم اجر دنیوی داره و هم اخروی.
توی خط اول، عبارت «Text1.Text» چیزی که داخل کادر اول تایپ شده باشه رو بر میگردونه، ولی ما از کجا میتونیم مطمئن بشیم که این چیزی که تایپ کرده عدده؟! شاید یک بیکاری پیدا شد و به جای عدد یه جمله تایپ کرد، اونوقت چی؟ خوب با دستور «Val» هر چیزی که داخل کادر باشه رو به عدد تبدیل میکنیم. مثلا اگه ما تایپ کنیم 10 که مقداری که دستور «Val» برمیگردونه همون 10 خواهد بود ولی اگه تایپ کنیم «Salam» مقدار 0 بر میگردونه.
این مقداری که دستور «Val» تولید میکنه، ریخته میشه یک جای حافظه و اسمش رو میزاریم « a » که بعدا بتونیم باهاش کار کنیم. (فرض کنید توی یک قوطی ریختیم و روش نوشتیم a و گذاشتیم توی یخچال که بعدا استفادش کنیم)
دستور خط دوم هم عین خط اوله، تنها تفاوتش اینه که مقدار عددی که داخل کادر دوم تایپ شده رو میریزه توی یه قوطی به اسم « b »
خط بعدی کار جالبی میکنه، مقدار خصوصیت «Text» کادر متن سوم (Text3) رو برابر مجموع a و b قرار میده. ببینید جالب نیست؟ شما میاین a + b رو میریزن داخل خصوصیت «Text» کادر متن سوم.
خط چهارم دیگه کاملا مشخصه، مجموع دو عدد وارد شده رو با یک «Message Box» نشون میده.
اینطوری میشه که یه ماشین حساب برای جمع ساخته میشه.
منبع:/www.lostlord.com/