صفحه 1:
3 آشنايي Ee) رح ل
صفحه 2:
صفحه 3:
صفحه 4:
تا" ۲۲۲۲۲۲ "
خصوصیت ۷ط07)
كليه پنجره ها . غیر از پنجره فرم یک خصوصیت متعلق يه خوة ذارنك ۱ خصوصيت مى كويد كه آيا اين ينجره
lockable | مد اک مس shen ockable است که خود را به نزدیکترین یال صفحه
نمایش یا به نزدیکترین پنجره dockable اتصال
مثلا اگر0010036 را به بالای صفحه نمایش ido أبى ع لفاس اود ی سای رآ
خود را جهت جا دادن به پنجره فوق
پنجره هایی که خاصیت 00168۳016 آنها فعال است
باشند حتما در همه حال قابل رویت بوده و هیچ وقت در بك
خحاصیت دیگر نیز دارند .این پنجره ها هميشه رو
پنجره دیگر
ار دادن دکمه سمت راست ماوس روي لین پنجره ها ۰ خاصیت 000168116 را مشاهده
نمایید . اگر «ds 00016216 علامت زده شده بود ۰ اين نشان مي دهد که پنجره فوق 00616116
است . اگر پنجره خاصیت 00162116 آن علامت نخورده باشد این پنجره به عنوان يك پنجره شناور
خواهد بود .
صفحه 5:
SS ها
تنظیم خصو صیت وا00۳1)
دريك مرحله مي توان خاصیت 000162116 را براي کلیه پنجره ها تنظیم نمود .
روي منوي حالم كليك كنيد و ULSI) pine JS نمایید . هنگامي که کادر
محاوره اي مربوط به مرن ظاهر شد زبانه 006162016 را انتخاب کنید ,امعم
بسا ها نشان مي دهند که کدام پنجره ها 00016216 هستند و کدام نیستند .
صفحه 6:
SS با
ارشي كردن
كزينه هاي مختلفي وجود دارد كه روي tot bar به صورت بيش فرض يا استاندارد وجود ندارد .مثل
ينجرهعه ف كه جزو آيكنهاي بيش فرض«<امم: نيست .در اينجا مي خواهيم آيكن ينجره
لس را به -ممادمي» جهت دسترسي سريع به ينجره فوق » اضافه كنيم يا به اصطلاح مي خواهيم
مادم را سفارشي كنيم .
جهت سفارشي كردن اين بنجره به صورت زير عمل مي كنيم
. دكمه ماوس را روي سوا ادم فشار دهيد و كزينسج-» موب را كه از منوي باز شوي ظاهر شده
انتخاب كنيد . ينجره جد حصب نمايش مي يابد
©. زبانه لسرا انتخاب كنيد
© . آيكنهاي دلخواه را روي 8S WS tool bar =
صفحه 7:
با کی ۲
پیاده سازي يك برنامه ساده ( نمایش يك متن روي۳ )
هدف ما در اين بخش نمایش عبارت "منوا ام ما ج7محاوري” روي يك مرو مي باشد .
براي این کار نیاز به يك مسب و يك(امسسس)اساها جهت نمایش متن فوق داریم .
0 تنظیم نوار ابزار چا tke
مقداري که درمقابل عبارت» مومس نوشته مي شود در نوار عنوان نمایش داده مي شود
- تنظیم خصوصیت 07
هر فرم با مقداري که به خصوصیت آن داده مي شود شناخته مي شود .
نكته : براي سهولت در تشخيص فرم ها ء اسامي آنها را با بيشوندمك] بكار ببريد .
© - تغيير ابعاد فرم
6١ - انتقال فرم به مركز صفحه
©- تغيير رنك زمينه فرم
با استفاده از خصوصيت مامت +إعا
صفحه 8:
سس
ع- اضافه كردن اصاه به فرم
۵ - نوشتن عبارت داخل ابا
با استفاده از خاصيت مج
0 - نامگذاري اسلا
با استفاده از خاصیتت مر
نکته : براي راحتي تشخيص كنترلهاياسا! » اسامي آنها را با بيشونداما به کار ببرید
-٩ سفارشی کردن رنگهای اس
براي تغییر رنگ کادر از امس سس و براي تخيي رنگ عبارت از polo سب استفاده مي
شود.
00 تغییر اندازه فونت
0 ذخیره کردن پروزه
18 اجراي برنامه
صفحه 9:
صفحه 10:
برنامه نويسي شي كرا: 5
اصول و بناي 2b» visual basic O مفهوم objert استوار است .مي توانيم يك زرا به
عنوان يك واحد جداكانه در برنامه در نظر بكيريم كه داراي ويزكيهاي معيني بوده وقادر
است اعمال معيني را انجام دهد .
سوالاتي كه در برنامه نويسي شي گرا مطرح هستند ؛ عبارتند از :هر شي جكونه ديده مي
شود »هر شي چه عملي انجام مي دهد ۰ هر شي جه تاثيري به محيط خود دارد.
حسن برنامه نويسي شي گرا در اين است که يك شي با طراحي خوب مي تواند قابل استفاده مجدد
در برنامه هاي كاربردي دیگر نیز باشد .بارزترین مثال برلي اين فن ۰ برنامه نويسي خود
ویندوز است _کلیه عناصري که شما عموما براي براي ارتباط با کامپیوتر در محیط ویندوز
استفاده مي كنيد اعم از دكمه ها ء منوها و غیره » همه نمونه هايي از اشیاء هستند .شما به
عنوان برنامه نويس visual ضمن افزودن اشياء فوق به برنامه » آنها را توسط
ویژگیهایشان کنترل میکنید ,مثلا با کليك کردن روي يك دکمه كنترلي چه اتفاقي رخ بدهد یا
اينكه يك ينجره تغيير اندازه بدهد يا نه.
برنامه نويسي شي كرا را (ب-تم مم دجاه اتجزنات)دون نيز مي نامند.
صفحه 11:
سس
خراص ۱
خواص يك شي باعث مي شود يك شي در ضمن اينکه نوعا منحصر به فرد است ؛ انعطاف
پذیر باشد
رخداد هاي (عصصج) : سم
_ هر شي براي اينکه وجود خود را در محیط نشان دهد » باید نسبت به عوامل محيطي و دیگر
اتجزنات هاي تسهیم کننده محیط واکنش نشان دهد .هر عامل محيطي بر محیط را ریم یا رخداد
مي نامند .
صفحه 12:
SS با
* همان طور كه ملاحظه فرموديد انواع از پروژه ها در اين پنجره وجود دارد که در
ادامه به برخى از آنها خواهيم برداخت؛ ولی فعلا نوع لستاندارد پروژه های 0 يعنى نوع
0 ؛سلممی را انتخاب و آن را باز(ممم) می کنیم. اين نوع پروژه (که غالب پروژه
ها را در بر می گیرد) برای تهیه برنامه های کاربردی(سسسسمه)) مورد استفاده قرار
می گیرد.
بس از باز كردن يروزه.© 9-4-1 ؛ پنجره اصلی<) برای اين نوع پروژه باز می شود
جلسه سوم :
پنجره م۳ برخی از مشخصه(,پمسم,0) های مربوط به را ای که انتخاب شده (سیءه0)
باشد را نمایش می دهد که می توان آنها را در هنگام طراحی(م (Deora تغییر داد
(سایر مشخصه ها باید در هنگام اجر ا(سم:مم() تنظیم شوند. در پنجر هیمورا ore نیز
می توان مکان قرار گیری رب هنگام اجرای برنامه(»۲»۱۲)) بر روی صفحه نمایش
را تعيين کرد (همچنین این کار را توسط کدنويسي نیز می تولن انجام داد و عموماً همین
روش هم توصیه می شود و لذا عموماً حتی می توان این پنجره را به كل بست).
صفحه 13:
با SS
در اين جلسه به عنوان اولین پروژه» قصد داریم فرمی داشته باشیم با دو دکمه موه( و
04 که اگر در دکمه cab SUIS Demme پیغامی نمایش داده شود و اگر دکمه SAS Bret
شد از برنامه خارج شود *
براي فرم :
مشخصه ورمی() آن را به )۳ تغییر می دهیم.
مشخصه موی آن را به بسسزرم۳) بسم۳) تغییر می دهیم.
براي دكمه ها:
مشخصه م( را به ووه 10ح تغيير مى دهيم.
مشخصه موهرین را به مسمووی() تخییر می دهيم.
وبراي ديگري:
مشخصه بروی() را به 4 .
مشخصه وباو 0 را به Gra
صفحه 14:
كه در بالا ذكر شدء عیلیس۳) پمی) مربوط به رویداد »هی از د
باز مى كنيم و آن را به صورت زیر تغییر می دهیم:
rite Gab cord, Deseae - Olek
Dronks” ",, OseBor “Dhe Prot project war dour sucess Pl"
Cod Gb
پروژه مورد نظر آماده شده شده است. دستور 9و( (مخنف Message Bpx )باعث مى
شود تا یک کادر پیغام بر روی صفحه نمایش ظاهر شود و تا زمانی که دکمه 006 از آن را
فشار دهیم. پیغامی را نمایش دهد. در اين دستور پارامتر اول» بيغام مورد نظر را
SQ) داده متنی) دریافت مي کند (در 6() هر عبارتی که بين دو علامت
رده وه فرض می شود) و پارامتر سوم نیز به عنوان :9) عبمییی() (که 33 Mle
Oe أدرده خواهد شد) را به صورت مقلی ریافت می کند. توجه داريم كه بين هر دو
پارامتر از علامت كاما (,) استفاده مى كنيم و بنابراين در دستور 000 برنامه مان براى
أينكه يس از يارامتر اول؛ بارامتر سوم را وارد كنيم بين آن دو بارامتر دو بار اما كذاشته ايم.
نكته :أكر بخواهيد فشردن Jac Glas OLDEN دکمه Brat را انجام دهد(ایجاد(رو بسا) ؛
کافی است در موب() اين دکمه چنین بنویسید: 984) که در اين صورت در زمان اجراء
ور حص وك حك إزير خط) مى كشد كه در ويندوز اين At hep SGU Sill
داشتن أن حرف است » همين كار را هم در مورد دکمه مهییریم(1) انجام دهید
صفحه 15:
۳ ۳ 0227227777
برخى مشخصه هاى ,0 ©) 214
+ <0: نامىكه 009) آنرا با ليننام میشناسد.
م01 : تراز متندلخل»,:0) 4م۳/ (رلستجين وسط جين جبجيز)
0 : با مقدار 19) و (0)© كه سه بعدويودزيا تختبودنآنرا مشخصمى
Dent Bon Ase 3855 + Dark Cob
3 (Pood Orape) دلشته بساشد Atle text Dox AS SS ue 5 AS : Order Ore
(Dow) 8
عاطامی3) لینمشخصه برلیهو کنترلیسیای۳) بساشدیعنیآنکنترلغر sas
خاکستریشده کسنترلها در ویندوز نمایشگر عطاه۳) بسودنسارامن) آناسب:
۷ : نوع فونتمتن
Ovbr سم" : رنگمتن
Dent Box EG) : Weight
ورا : فياصله گوشه چپو بادلفم9) وم از و6 (دربرگیرندم) De به حلل
يكدربركير ندم (coat) را دیدد لیم که فرمها میباشند. بوور() 42
نترلهايىك ويند كه كنترلهاوديكر مىتوانند بر روىآنقرار كيرند مثلكنترل
(Pied 3S G Pree
صفحه 16:
SS
bat Dent Boxe tls Prue slate S48: Locked كاربرء قابلویرلیش(90)
نخواهد بود.
a Ss SSIS olan She Dax Lech * میتولند دلخلممن9) مبم) قرار گیرد کسه
لگر مقدار آنصفر باشد» محدودیتتعداد نخولهد دلشتِ
۴ دبا نف : لگر مقدار آنبرلبر س/ شود؛ میتواندر 0() ببی]» چند خطینوشتو
در ولقع آنرا شبیه یسکس) نمود.
۴ ا) لسسررووو۳) : گه لگر ییکک ارلکتر در آنقرار گیرد. هرچه دلخل») »
نوشته شود با آنكارلكتر ديدم مىشود (شما در وارد كردن بد1) در هر ویندوز
مسلماً با مقدار * بر لئاس حه<) برخورد دلشته ليد).
هرا ۲0 6۲ : که لگر مقدار نس atl پاراگرلفواستبه چپمیشود (مثللنچه
ما در فسارسینوشتنبه آننیازمندیم).
Pree sl Dult Lice ists 81 Goro Bars" بساشدء توسط مشخصه عو() اسو5)
می توان وجود سس عمودی (امصهبس) ۰ افقی (امسعس) و یا ترکیبی از آن دو (0۳4))
را داشت.
صفحه 17:
با SS
م1 ۳0 : ترتیبپرشاز کنترلبه کنترلدیگر هنگام زدنکلید Dab مثلا لگر سه
Dent Box بسر رووفرم دلشته باشیم و مقدار Tere رلم۳/ آنها بسه ترتیب() و 4و 5
بگاریب در هنكام لجراء فسوکوسبه برن() ما" با مقدار ی رای برلبر صفر
دادم میشود کسه لگر کسلید و۳ را بسزنید» فسوکوسبه برن() مرجا[/ با مقدار ولو۳»
»21 ببرلبر يكدادم خولهد شد و الوآخر.
Dob inp : که لگر مقدار آنبسرلیک نترلیبتان۳) بساشده با زدنكليد يك1/ هيجكام
فوكوسبه لزداده نخولهد شد (با رای" نمیتوانرویآنرف: ._
: عملأكار خاصئإنجام نمىئدهد و فقط مئتولنيم چیزیرا در آنذخیرد کسنیم کسه
بسعداً خودماناز آنلستفادم کنيم.
Dip Dent اس( : که مقدار آنهر چه بباشد وقتیدر ۳:۳ Assis! Abad ake Rua
کنترلخاصنگه داریب یک اهنماوک وتاه زرد رنگبا متنب رلبر مقدلر تعرینشده در
Pood Mp Dent از آنسیرونخولهد آمد.
مت : فاصله گوشه رلستو با- فک نترلاز هیمس (دربرگیرنده) خود.
ساتاین() : که لگر مقدار آنبیوا۳) باشد؛ آنکنترلتوسط کاربر (یعنیدر :۲ (Rua
ديدم نخولهد شد.
ids : عرضکنترل
صفحه 18:
Text Box ها دار لئجهار رويداد pes (Buen) میباشند:
KeOowa — 920 - 19/۲ - 0
* زمانى كه فوكو س(تمركز) به يك ,8 وبج1 داده شودء اگر کلیدی از صفحه کلید زده شود»
Key Pressley lab) رخ می دهد ( و اين به سیستم می فهماند که یک کلیدی فشرده شد) »
سپس رویداد جرربج6 رخ می دهد ( و آين به سیستم می فهماند که کلید زده شده» تازه زده
شده است و هنوز فشرده است) و وقتى دستمان را از روى كليد Co Kopp 2s esl
مین ده
. رویداد جیار نیز زمانی که هر تغییری در مقدار داخل بمرط پرو۳» انجام شود روی می دهد
(و لذا مثلا اگر کلیدی مثل Keys رس (کلیدهای حرکتی) که تغییری در مقدار داخل
Det Box انجام نمی دهد زده شود رویداد جوم رخ نمی دهد.)
توجه داشته باشيم كه مررح)بع (وم(,)) برای همه کلیدهای صفحه کلید رخ می دهد اما
رویداد عویررب6 برای برخی مثل جر رسب رخ نمی دهد.
* یذ مس مزبوط به موب و 0و6 دارلیدو آرگومان(پارلمتر) هستند:
8 __ پارامتر سر که کد اسکی کلید فشرده شده را بر می گرداند.
صفحه 19:
H فرض کنید بر روی فرم یک »رم وس به نام طدى(0م وجود دارد كه براى دريافت
نمره یک درس دانش آموزی از کاربر» استفاده می شود. برای نمایش اينكه با وارد نودن نمره
ای به کاربر خطایی رخ داده است» رنگ متن آن را به رنگ قرمز (34)) در می آوریم و در
غیر اینصورت (یعنی بدون خطا) رنگ متن را به رنگ سیاه (.!()) در خواهیم آورد.
توجه كنيد كه مى توانید برای زیبایی برنامه مذکور برای رویداد ب ,و6 از ری(« نیز
چنین داشته باشیم.
Prirte Gab tetnnober_ Key Dp(KeyOrde 02 بح 0۶ 62۱8 ,جح (
1۳ (اسمم03 < 90 ۳
لیان < ناسمه
Ober
ttoueober.PoreOnlor = vbBlack
Oud PF
صفحه 20:
Veneer Ochi Hake از آن نام نب
مشخصه در بسیاری از ,ل6()ها نیز وجود دارد و دارای کاربرد بسیار زیبایی است که شاید اگر
وجود نداشت. برای شبیه سازی آن بوسیله کدنویسی» زمان زیادی را صرف خود می کرد.
فرض كنيد بر روى فرم يك ,رج3) «رج21 به نام ادصى7)ين وجود دارد که برای دریافت نمره
يك درس دانش آموزى از كاربرء استفاده مى شود. ترجيح مى دهيم كاربر نتواند لين فرم را
عروی کند (نتواند به سراغ کلید میرب« برود) مگر اینکه نمره صحیح (که در فاصله
صفر تا بیست است») را وارد نموده باشد. اما مثلاً بتواند روی دکمه اسب( برود و فرم
را اسسوت() نمایدو یعنی می خواهیم اگر نمره در دامنه صحیح خود نبود روی برخی دیگر از
آنها نرود,
اگر برای رویداد))(مس)) سعلله() از جیاسی(0هج ۰ چنین داشته ب
صفحه 21:
Private Gub tetwerber_Oukdaie(Coare Bs ما6
1۳ امن < CO Thea
Ounce = Pre
Col F
Oud ab
فوق مى كويد هر وقت كه 04# ؛ حامس 7[يم شدء بررسى كن كه آيا نمره كمتر از 6000 هست
یا خیر که اگر نبود؛ پارامتر اسصعی را ععمر نمايد. حال اكر مشخصه مج044 سد
از هر كنترلى را سس نماییم» در صورتی که 00<(ساسی»مین باشد. کاربر
نمی توانده آن کنترل را فوکوس دهد. لذا اگر مشخصه مذکور را برای کلید سم
Gave بر ابر سب و redOuwel GIL برابر میج تغیر دهیم» درصورت نبودن
نمره در فاصله مناسب. کاربر می تواند عملیات دکمه بسممن را انجام دهد اما
عمليات دكمه موه را خير مكر اينكه دوباره بو یریم مذکور را با عددی
مناسب بودهن نماید.
صفحه 22:
eee
مثالی دیگر و استفاده از اصرا و »ها
فرض کنید بخواهیم فرمی داشته باشیم که دارای دو بم9) ورب" )5248 OD برای عملیات
دریافت اطلاعات از کاربر (ومهه(006)) معمولا از اين كنترل استفاده مي شود) برای درجه
سيلسيوس و درجه فارنهايت باشد و توسط یک دکمه (و در واقع با فشردن آن ين
مقداری که در «سا هبم۳/ مربوط به درجه سیلسیوس نوشته شده بود را به فارنهای
و نتيجه را در »«190) »218 مربوط به آن درج نماید. (توجه: اگر (»مقدار درجه برحسب
یلسیوس و *) مقدار درجه برحسب فارنهایت باشد» تبدیل سیلسیوس به فارنهایت از فرمول
000 20/0 محاسبه می شود):
برای یکی از آن دو Dent Box 2
0 . مشخصه وربی() رابه عمولولوو تغییر می دهیم.
م4 مشخصه پری۲» را خالی می کنیم.
و برای دیگری:
)_ مشخصه عرمی() را به وولو تغییر می دهیم.
9 مشخصه پرو را خالی می کنیم.
صفحه 23:
با SS
* حال یک دکمه (مرهما لججممممی())) نیز به فرم اضافه و:
مشخصه بروی() را به ملسم
مشخصه مور( را به رورم
(ToterPune) )) ate aad برنامه آماده شد. حال به کدنویسی برای آن می پردازيم. اين اولین
باری است که می خواهیم در زمان Piere) Lal می(0) از مشخصه ای استفاده کنیم (مشخصه
Pent از عجعای( )که توسط کاربر وارد شده) و مشخصه ای را در اين حال (۲۳۶ ۲))
تغییر دهیم (مشخصه 4 از اواج :)هن كه را بنويسد)
در 009) هنكام كدنويسى براى 20-7 م۲ هر زمان بخواهیم از یک /مزر() استفاده كنيم»
کافی است نام (772()) آن را بنویسیم و اگر بخواهیم به یکی از مشخصه های آن دست یابیم
کافی است پس از نام آن یک نقطه (.0)) قرار دهیم و سپس نام مشخصه (Property) 24
نظر خورد را بنویسیم.
با توجه به این مطلنب. دیگر نوشتن کدهای مثال فوق کار چندان دشواری نیست. اگر بر روی
دکمه مسرمو() (البته در سم( نوج(1) ) دابل كليك نماييد» در اینصورت Procedure
مربوط به رویداد()) کلیک از آن باز می شود که کافی است در آن نوشته شود:
6 + رو سص اه 616) < txfPobrecket. Dex
صفحه 24:
SS با
فرض کنید بخواهیم مثال قبل را طوری تغییر دهیم که با نوشتن هر رقمی در ععمطول»ه ۰ بدون
انياز به فشردن كليد» نتیجه به طور خودکار در #سواد وهم نوشته شود.مثلاً به محض اینکه
عدد© رازديم؛ تبدیل شده 6 را به فارنهایت بنویسید و به محض فشردن کلید 0 (روی هم شده
است(00) تبدیل شده 600 را به فارنهایت بنویسد و ...
با توجه به مطالب گفته شده» کافی است برای رویداد (س) 0۳ از سخطء 0م جنين
بنویسیم:
(Odi (iOrbie)*O/8) + OC = عدون
فصل اول
و آشنايي با ابزارها visual basic 6شناسايي محيط
خصوصيت Dockable
كليه پنجره ها ،غير از پنجره فرم يك خصوصيت متعلق به خود دارند ،اين خصوصيت مي گويد كه آيا اين پنجره
ها dockableهستند ؟يك پنجره ، dockableپنجره اي است كه خود را به نزديكترين يال صفحه
نمايش يا به نزديكترين پنجره dockableاتصال دهد .
مثال اگر toolboxرا به باالي صفحه نمايش درگ كنيد ،اين پنجره باعث مي شود كه پنجره هاي ديگر ابعاد
خود را جهت جا دادن به پنجره فوق تغيير دهند .
پنجره هايي كه خاصيت dockableأنها فعال است يك خاصيت ديگر نيز دارند .اين پنجره ها هميشه رو
هستند .يعني اگر اين پنجره ها باز باشند ،حتما در همه حال قابل رويت بوده و هيچ وقت در پشت پنجره ديگر
قرار نمي گيرد .
مي توان با فشار دادن دكمه سمت راست ماوس روي ا)ين پنجره ها ،خاصيت dockableرا مشاهده
نماييد ،اگر كلمه dockableعالمت زده شده بود ،اين نشان مي دهد كه پنجره فوق dockable
است .اگر پنجره خاصيت dockableآن عالمت نخورده باشد ،اين پنجره به عنوان يك پنجره شناور
خواهد بود .
تنظيم خصوصيتDockable
دريك مرحله مي توان خاصيت dockableرا براي كليه پنجره ها تنظيم نمود .
روي منوي toolsكليك كنيد و گزينه optionرا انتخاب نماييد .هنگامي كه كادر
محاوره اي مربوط به optionظاهر شد زبانه dockableرا انتخاب كنيد check.
boxها نشان مي دهند كه كدام پنجره ها dockableهستند و كدام نيستند .
سفارشي كردن
گزينه هاي مختلفي وجود دارد كه روي tool barبه صورت پيش فرض يا استاندارد وجود ندارد .مثل
پنجره immediateكه جزو آيكنهاي پيش فرض toolbarنيست .در اينجا مي خواهيم آيكن پنجره
immediateرا به ،toolbarجهت دسترسي سريع به پنجره فوق ،اضافه كنيم يا به اصطالح مي خواهيم
toolbarرا سفارشي كنيم .
جهت سفارشي كردن اين پنجره به صورت زير عمل مي كنيم
. 1دكمه ماوس را روي tool barفشار دهيد و گزينه customizeرا كه از منوي باز شوي ظاهر شده
انتخاب كنيد .پنجره customizeنمايش مي يابد
.2زبانه cammandرا انتخاب كنيد
. 3آيكنهاي دلخواه را روي tool barرها كنيد .
پياده سازي يك برنامه ساده ( نمايش يك متن روي) form
هدف ما در اين بخش نمايش عبارت” ”welcome to visual basicروي يك formمي باشد .
براي اين كار نياز به يك formو يك) label(controlجهت نمايش متن فوق داريم .
–1تنظيم نوار ابزارtitle bar
مقداري كه درمقابل عبارت captionنوشته مي شود در نوار عنوان نمايش داده مي شود
– 2تنظيم خصوصيت name
هر فرم با مقداري كه به خصوصيت nameآن داده مي شود شناخته مي شود .
نكته :براي سهولت در تشخيص فرم ها ،اسامي آنها را با پيشوند frmبكار ببريد .
– 3تغيير ابعاد فرم
- 4انتقال فرم به مركز صفحه
-5تغيير رنگ زمينه فرم
با استفاده از خصوصيت back color
-6اضافه كردن labelبه فرم
– 7نوشتن عبارت داخل label
با استفاده از خاصيتcaption
– 8نامگذاري label
با استفاده از خاصيتname
نكته :براي راحتي تشخيص كنترلهاي ، labelاسامي آنها را با پيشوند lblبه كار ببريد .
-9سفارشي كردن رنگهاي label
براي تغيير رنگ كادر از back colorو براي تغيي رنگ عبارت از fore colorاستفاده مي
شود.
-10تغيير اندازه فونت
-11ذخيره كردن پروزه
-12اجراي برنامه
فصل دوم
visual basicمق)دمه اي بر برنامه نويسي با
6
برنامه نويسي شي گرا:
اصول و بناي visual basic 6بر پايه مفهوم objectاستوار است .مي توانيم يك objectبه
عنوان يك واحد جداگانه در برنامه در نظر بگيريم كه داراي ويژگيهاي معيني بوده وقادر
است اعمال معيني را انجام دهد .
سواالتي كه در برنامه نويسي شي گرا مطرح هستند ،عبارتند از :هر شي چگونه ديده مي
شود ،هر شي چه عملي انجام مي دهد ،هر شي چه تاثيري به محيط خود دارد.
حسن برنامه نويسي شي گرا در اين است كه يك شي با طراحي خوب مي تواند قابل استفاده مجدد
در برنامه هاي كاربردي ديگر نيز باشد .بارزترين مثال برا)ي اين فن ،برنامه نويسي خود
ويندوز است .كليه عناصري كه شما عموما براي براي ارتباط با كامپيوتر در محيط ويندوز
استفاده مي كنيد اعم از دكمه ها ،منوها و غيره ،همه نمونه هايي از اشياء هستند .شما به
عنوان برنامه نويس ، visualضمن افزودن اشياء فوق به برنامه ،آنها را توسط
ويژگيهايشان كنترل ميكنيد .مثال با كليك كردن روي يك دكمه كنترلي چه اتفاقي رخ بدهد يا
اينكه يك پنجره تغيير اندازه بدهد يا نه.
برنامه نويسي شي گرا را ) oop(object oriented programmingنيز مي نامند.
خواص )object : (properties
خواص يك شي باعث مي شود ،يك شي در ضمن اينكه نوعا منحصر به فرد است ،انعطاف
پذير باشد
رخداد هاي )object : (events
هر شي براي اينكه وجود خود را در محيط نشان دهد ،بايد نسبت به عوامل) محيطي و ديگر
objectهاي تسهيم كننده محيط واكنش نشان دهد .هر عامل محيطي بر محيط را eventيا رخداد
مي نامند .
جلسه سوم :
همان طور که مالحظه فرموديد ،انواع مختلفی از پروژه ها در اين پنجره وجود دارد که در
ادامه به برخی از آنها خواهيم پرداخت ،ولی فعالً نوع ا)ستاندا)رد پروژه های VBيعنی نوع
Standard EXEرا انتخاب و آن را باز( )Openمی کنيم .اين نوع پروژه (که غالب پروژه
ها را در بر می گيرد) برای تهيه برنامه های کاربردی( )Applicationsمورد استفاده قرار
می گيرد.
پس از باز کردن پروژه ، Standard Exeپنجره اصلی VBبرای اين نوع پروژه باز می شود
پنجره ،Propertiesبرخی از مشخصه( )Propertyهای مربوط به VCLای که انتخاب شده
باشد را نمايش می دهد که می توان آنها را در هنگام طراحی( )Design Timeتغيير داد
(ساير مشخصه ها بايد در هنگام اجرا( )Run Timeتنظيم شوند .در پنجره Form Layoutنيز
می توا)ن مکان قرار گيری Formهنگام اجرای برنامه( )Run Timeبر روی صفحه نمايش
را تعيين کرد (همچنين اين کار را توسط کدنويسي نيز می توا)ن انجام داد و عموما ً همين
روش هم توصيه می شود و لذا عموما ً حتی می توان اين پنجره را به کل بست).
()Select
در اين جلسه به عنوان اولين پروژه ،قصد داريم فرمی داشته باشيم با دو دکمه Messageو
Exitکه اگر در دکمه Messageکليک شد ،پيغامی نمايش داده شود و اگر دکمه Exitکليک
شد از برنامه خارج شود .
برا ي فرم :
مشخصه Nameآن را به frmFirstProjectتغيير می دهيم.
مشخصه Captionآن را به First Projectتغيير می دهيم.
براي دكمه ها:
مشخصه Nameرا به cmdMessageتغيير می دهيم.
مشخصه Captionرا به Messageتغيير می دهيم.
وبراي ديگري:
مشخصه Nameرا به . cmdExit
مشخصه Captionرا به Exit
حال اگر به ترتيبی که در باال ذکر شد Event Procedure ،مربوط به رويداد clickاز دکمه
Messageرا نيز باز می کنيم و آن را به صورت زير تغيير می دهيم:
Private Sub cmd, Message - Click
“Thanks” ”,, MsgBox “The first project was done successful
End Sub
پروژه مورد نظر آماده شده شده است .دستور ( MsgBoxمخفف ) Message Boxباعث می
شود تا يک کادر پيغام بر روی صفحه نمايش ظاهر شود و تا زمانی که دکمه OKاز آن را
فشار دهيم ،پيغامی را نمايش دهد .در اين دستور پارامتر اول ،پيغام مورد نظر را به صورت
( stringيک داده متنی) دريافت مي کند (در VBهر عبارتی که بين دو عالمت " " قرار
گيرد string ،فرض می شود) و پارامتر سوم نيز به عنوان ( Message Boxکه در Title
Barآن آورده خواهد شد) را به صورت متنی دريافت می کند .توجه داريم که بين هر دو
پارامتر از عالمت کاما ( ),استفاده می کنيم و بنابراين در دستور MsgBoxبرنامه مان برای
اينکه پس از پارامتر اول ،پارامتر سوم را وارد کنيم بين آن دو پارامتر دو بار اما گذاشته ايم.
نكته :اگر بخواهيد فشردن ALT+Xهمان عمل دکمه Exitرا انجام دهد(ايجاد(، )Hot key
کافی است در Captionاين دکمه چنين بنويسيد E&xit :که در اين صورت در زمان اجرا،
زير حرف xيک ( underlineزير خط) می کشد که در ويندوز اين حالت نشانگرHot key
داشتن آن حرف است ،همين کار را هم در مورد دکمه Messageانجام دهيد
برخی مشخصه های Text Boxها:
:Nameن))امیک)))ه) VBآ)نرا ب)))ا ا)ينن))ام) میش))ناسد.
: Alignmentت)))راز متندا)خل( Text Boxرا)ستچين ،وسط چين ،چپچين)
: Appearanceب)))ا مقدار Flatو 3Dک)))ه) س )ه) ب)))ع)دیب)))ودني))ا ت)))ختب)))ودنآ)نرا مشخصمی
ک)))ند.
: Back Colorرنگزمينه) Text Box
: Border Styleک)))ه) ت)))عيينمیک)))ند ک)))ه) text Boxح)اشيه) دا)شته) ب)))اشد ( )fixed Singleو
ي))ا خير ()None
ف)))ع)ا))ل)ست(رنگ
ا
Enableا)ينمشخصه) ب)))را)یهر ک)))نترلی Falseب)))اشديعنیآ)نک)))نترلغير
خ)اک)ستریش))ده) ک)))نترله)ا در ويندوز ن))مايشگر Falseب)))ودن Enableآ)نا)ست).
: Fontن))وع ف)))ونتمتن
: Fore Colorرنگمتن
: Heightارتفاع Text Box
: Leftف)))اصله) گ)))وشه) چپو ب)))ا))الی Text Boxاز ( Containerدربرگ)يرنده)) آ)ن(ت)))ا ب)))ه) ح)ا))ل
ي))کدربرگ)يرنده) ( )containerرا ديده) ا)يم) ک)))ه) ف)))رمه)ا میب)))اشند Container .ها ب)))ه)
ک)))نترله)ايیگ)))ويند ک)))ه) ک)))نترله)ایديگر میت)))وا)نند ب)))ر رویآ)نق))رار گ)))يرند مثلک)))نترل
Frameي))ا ک)))نترل.)Picture
: Lockedک)))ه) ا)گر مقدار آ)ن Trueب)))اشد Text Box ،ت)))وسط ک)))اربر ،ق))ابلويرا)يش()Edit
ن))خوا)هد ب)))ود.
: Max Lengthح)دا)ک)ثر ت)))ع)داد ک)))ارا)ک)تریک)))ه) میت)))وا)ند دا)خل Text Boxق))رار گ)))يرد ک)))ه)
)شت
ا)گر مقدار آ)نص))فر ب)))اشد ،محدوديتت)))ع)داد ن))خوا)هد دا .
: Multi Lineا)گر مقدار آ)نب)))را)بر Trueش))ود ،میت)))وا)ندر ،Text Boxچند خطین))وشتو
در وا)قع) آ)نرا ش))بيه) ي))ک Editorن))مود.
: Password Charگ)))ه) ا)گر ي))کک)))ارا)ک)تر در آ)نق))رار گ)))يرد ،هرچه) دا)خلText Box
ن))وشته) ش))ود ،ب)))ا آ)نک)))ارا)ک)تر ديده) میش))ود (ش))ما در وارد ک)))ردن Passwordدر هر ويندوز
مسلماً ب)))ا مقدار * ب)))را)ی Passwordب)))رخورد دا)شته) ا)يد).
: Right To Leftک)))ه) ا)گر مقدار آ)ن Trueب)))اشد ،پ)))ارا)گرا)فرا)ستب)))ه) چپمیش))ود (مثلآ)نچه)
ما در ف)))ارسی ن))وشتنب)))ه) آ)نن))يازمنديم)).
: Scroll Barsا)گر مقدار Multi Lineب)))را)بر Trueب)))اشد ،ت)))وسط مشخصه) Scroll Bars
می توان وجود scrollbarعمودی ( ، )verticalافقی ( )horizontalو يا ترکيبی از آ)ن دو ()Both
را داشت.
: Tab Indexت)))رتيبپ)))رشاز ک)))نترلب)))ه) ک)))نترلديگر هنگام) زدنک)))ليد ً .Tab
مثال ا)گر س )ه)
Text Boxب)))ر رویف)))رم) دا)شته) ب)))اشيم) و مقدار Tab Indexآ)نه)ا ب)))ه) ت)))رتيب 0و 1و 2
ب)))گذاريم) ،در هنگام) ا)جرا ،ف)))وکوسب)))ه) Text Boxب)))ا مقدار Tab Indexب)))را)بر ص))فر
داده) میش))ود ک)))ه) ا)گر ک)))ليد Tabرا ب)))زنيد ،ف)))وکوسب)))ه) Text Boxب)))ا مقدار Tab
Indexب)))برا)بر ي))کداده) خ)وا)هد ش))د و ا))لیآ)خر.
: Tab Stopک)))ه) ا)گر مق)دار آ)نب)))را)یک)))نترلی Falseب)))اشد ،ب)))ا زدنک)))ليد Tabهيچگاه)
ف)))وکوسب)))ه) آ)نداده) ن))خوا)هد ش))د (ب)))ا Tabن))میت)))وا)نرویآ)نرفت).
ً
عمال ک)))ار خ)اصیا)نجام) ن))میدهد و ف)))قط میت)))وا)نيم) چيزیرا در آ)نذخيره) ک)))نيم) ک)))ه)
: Tag
ب)))ع)داً خ)ودماناز آ)نا)ستفاده) ک)))نيم).
: Tool Tip Textک)))ه) مقدار آ)نهر چه) ب)))اشد وقتیدر Run Timeماوسرا) ل))حظه) ا)یرویآ)ن
ک)))نترلخ)اصن))گه) داريم) ،ي))کرا)هنمایک)))وتاه) زرد رنگب)))ا متنب)))را)بر مقدا)ر ت)))ع)ريفش))ده) در
Tool Tip Textاز آ)نب)))يرونخ)وا)هد آ)مد.
: Topف)))اصله) گ)))وشه) را)ستو ب)))ا))الیک)))نترلاز ( containerدربرگ)يرنده)) خ)ود.
: Visibleک)))ه) ا)گر مقدار آ)ن Falseب)))اشد ،آ)نک)))نترلت)))وسط ک)))اربر (ي))عنیدر )Run Time
ديده) ن))خوا)هد ش))د.
: Widthع)رضک)))نترل
Text Boxها دارا)یچه)ار رويداد ( )Eventمهم) میب)))اشند:
KeyDown – KeyUp – KeyPress – Change
زمانی که فوکوس(تمرکز) به يک Text Boxداده شود ،اگر کليدی از صفحه کل)يد زده شود،
ابتدا رويداد KeyPressرخ می دهد ( و اين به سيستم می فهماند که يک کليدی فشرده شد) ،
سپس رويداد KeyDownرخ می دهد ( و اين به سيستم می فهماند که کليد زده شده ،تازه زده
شده است و هنوز فشرده است) و وقتی دستمان را از روی کليد برداريم ،رويداد KeyUpرخ
می دهد.
رويداد Changeنيز زمانی که هر تغييری در مقدار داخل Text boxانجام شود ،روی می دهد
(و لذا مثالً اگر کليدی مثل ( Arrow Keysکليدهای حرکتی) که تغييری در مقدار داخل
Text Boxانجام نمی دهد زده شود ،رويداد Changeرخ نمی دهد).
توجه داشته باشيم که ( KeyDownو )KeyUpبرای همه کليدهای صفحه کليد رخ می دهد اما
رويداد KeyPressبرای برخی مثل Arrow Keysرخ نمی دهد.
Event Procedureمربوط ب)))ه) KeyDownو KeyUpدارا)یدو آرگومان(پ)))ارا)متر) هستند:
پارامتر keycodeکه کد اسکی کليد فشرده شده را بر می گرداند.
فرض کنيد بر روی فرم يک Text Boxبه نام txtNumberوجود دارد که برای دريافت
نمره يک درس دانش آموزی از کاربر ،استفاده می شود .برای نمايش اينکه با وارد نودن نمره
ای به کاربر خطايی رخ داده است ،رنگ متن آن را به رنگ قرمز ( )Redدر می آوريم و در
غير اينصورت (يعنی بدون خطا) رنگ متن را به رنگ سياه ( )Blackدر خواهيم آورد.
توجه کنيد که می توانيد برای زيبايی برنامه مذکور برای رويداد Key upاز txtNumberنيز
چنين داشته باشيم.
)Private Sub txtnumber_KeyUp(KeyCode As Integer, Shift As Integer
If Val(txtnumber) > 20 Then
txtnumber.ForeColor = vbRed
Else
txtnumber.ForeColor = vbBlack
End If
مشخصه causes Validationرا نيز ديده باشيد که ما در بخش قبل از آن نام نبرديم .اين
مشخصه در بسياری از VCLها نيز وجود دارد و دارای کاربرد بسيار زيبايی است که شايد اگر
وجود نداشت ،برای شبيه سازی آن بوسيله کدنويسی ،زمان زيادی را صرف خود می کرد.
فرض کنيد بر روی فرم يک Text Boxبه نام txtNumberوجود دارد که برای دريافت نمره
يک درس دانش آموزی از کاربر ،استفاده می شود .ترجيح می دهيم کاربر نتواند ا)ين فرم را
saveکند (نتواند به سراغ کليد cmdSaveبرود) مگر اينکه نمره صحيح (که در فاصله
صفر تا بيست است )،را وارد نموده باشد .اما مثالً بتواند روی دکمه cmdCancelبرود و فرم
را Cancelنمايدو يعنی می خواهيم اگر نمره در دامنه صحيح خود نبود روی برخی ديگر از
آنها نرود.
اگر برای رويداد))ِ( Validate )Eventاز ، txtNumberچنين داشته باشيم:
Private Sub txtnumber_Validate(Cancel As Boolean
If Val(txtnumber) > 20 Then
Cancel = True
End If
End sub
فوق می گويد هر وقت که txtNumber ، Validateشد ،بررسی کن که آيا نمره کمتر از 20هست
يا خير که اگر نبود ،پارامتر Cancelرا Trueنمايد .حال اگر مشخصه Causes Validation
از هر کنترلی را Trueنماييم ،در صورتی که Val(txtNumber)>20باشد ،کاربر
نمی تواند ،آن کنترل را فوکوس دهد .لذا اگر مشخصه مذکور را برای کليد
Saveبرابر Trueو برای cmdCancelبرابر Falseتغير دهيم ،درصورت نبودن
نمره در فاصله مناسب ،کاربر می تواند عمليات دکمه Cancelرا انجام دهد اما
عمليات دکمه Saveرا خير مگر اينکه دوباره Text Boxمذکور را با عددی
cmd
مناسب Validateنمايد.
مثالی ديگر و استفاده از Labelو TextBoxها
فرض کنيد بخواهيم فرمی داشته باشيم که دارای دو ( Text Boxکه در VBبرای عمليات
دريافت اطالعات از کاربر ( )DataEntrqمعموالً از اين کنترل استفاده می شود) برای درجه
سيلسيوس و درجه فارنهايت باشد و توسط يک دکمه (و در واقع با فشردن آن توسط کاربر)
مقداری که در Text boxمربوط به درجه سيلسيوس نوشته شده بود را به فارنهايت تبديل کند
و نتيجه را در Text Boxمربوط به آن درج نمايد( .توجه :اگر Cمقدار درجه برحسب
سيلسيوس و Fمقدار درجه برحسب فارنهايت باشد ،تبديل سيلسيوس به فارنهايت از فرمول
F=9/5 C+32محاسبه می شود).
برای يکی از آن دو : Text Box
-1مشخصه Nameرابه txtCelsiusتغيير می دهيم.
-2مشخصه Textرا خالی می کنيم.
و برای ديگری:
_1مشخصه Nameرا به txtFahrenheitتغيير می دهيم.
-3مشخصه Textرا خالی می کنيم.
حال يک دکمه ( )))Command buttonنيز به فرم اضافه و:
مشخصه Nameرا به cmdConvent
مشخصه 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
فرض کنيد بخواهيم مثال قبل را طوری تغيير دهيم که با نوشتن هر رقمی در ، txtCelsiusبدون
نياز به فشردن کليد ،نتيجه به طور خودکار در txtFahrenheitنوشته شود.مثالً به محض اينکه
عدد 8رازديم ،تبديل شده 8را به فارنهايت بنويسيد و به محض فشردن کليد ( 0روی هم شده
است )80تبديل شده 80را به فارنهايت بنويسد و ...
با توجه به مطالب گفته شده ،کافی است برای رويدا ِد ( KeyUp )Eventاز txtCelsiusچنين
بنويسيم:
txtFahrenheit = (Val (txtCelsius)*9/5) + 32