برنامهنویسی رایانه در فرهنگ واژه غیر متخصصین ممکن است به تمام پروژه ساخت نرمافزار یا برنامهٔ رایانهای گفته شود.
با این همه برنامهنویسی تنها بخشی از فرآیند توسعه نرمافزار یا برنامه رایانهای است.
اهمیت، توجه و منابع اختصاص داده شده به برنامهنویسی، بسته به ویژگیهای مشخص شده محصول و خواست افراد درگیر در پروژه و کاربران و در نهایت شیوهٔ انتخاب شده مهندسی نرمافزار متغیر است.
برنامهنویسی در دیدی ساده آخرین مرحله بزرگ ساخت یک برنامه رایانهای پس از مراحل تحلیل و طراحی برنامه است.
در بسیاری از موارد، برنامهنویسی بخشی از تلاش ما برای پیادهسازی نسخهای از دنیای پیرامون ما، با بازسازی قوانین ریاضی و طبیعی در محیط خنثی رایانه است.
به این سبب برنامهنویسی بارقههایی بزرگ از ریاضیات و مهندسی با خود دارد.
زبان برنامهنویسی
اجرا و عملی ساختن الگوریتمهای انتزاعی وابسته به هم بهوسیله تولید یک برنامه رایانهای مشخص با ابزار زبان برنامهنویسی ممکن است.
گرچه نزدیکترین راه برای بازسازی این قوانین در رایانه کار روی مدارهای الکترونیکی سختافزار آن است.
اما این کاری طاقتفرسا و زمانبر و درنتیجه کمابیش ناممکن است.
واسطهایی ساخته شدند تا میان سختافزار و انسان قرار گیرد.
طبیعی است یک واسط به ساده کردن و انتزاعی کردن رویدادهای ممکن درون سخت افزار میپردازد.
این انتزاعی کردن، سازنده سطوح گوناگون یا لایهبندی در معماری زیرساخت برنامهها است.
به همین ترتیب زبانهای برنامهنویسی گوناگون هم هرکدام برای ساخت برنامههای یک یا شماری اندک از این لایهها قابل استفاده هستند.
با متفاوت بودن آنچه برنامهنویس برای آسانی استفاده خود آفریده با ورودی واقعیسخت افزار برای اجرای فرامین (که به زبان ماشین معروف است) برنامه واسط باید شیوهٔ خط برنامه نویس را به زبان ماشین برگرداند .
زبانهای برنامه نویسی
تعدادی از زبانهای برنامهنویسی به شمار زیر هستند :
• اسمبلی (Assembly)
• لیسپ (LISP)
• بی سی پی ال (BCPL)
• سی (C)
• سیپلاسپلاس (++C)
• سی پلاس پلاس/سی ال آی(C++/CLI)
• پاسکال (Pascal)
• جاوا (Java)
• سیشارپ (#C)
• جی شارپ (#j)
• بیسیک (Basic)
• پایتون (Python)
• پرل (Perl)
• پیاچپی (PHP)
• ای اس پی (ASP)
• ای اس پی دات نت (ASP.Net)
• Matlab
• وی بی دات نت (VB .Net)
• دلفی (Delphi)
• ویژوال بیسیک (visual basic)
• لینگو (Lingo)
• توسعه دهنده های وب
دقت کنید که زبان هایی مانند اچتیامال (HTML) زبان برنامهنویسی نیستند بلکه زبانهای قالب بندی هستند.
به جرات مى توان ادعا کرد که در دنیاى امروز کمتر کسى را مى توان یافت که نام و آوازه «بیل گیتس» رئیس و بنیانگذار مایکروسافت و ثروتمندترین مرد جهان را نشنیده باشد.
اما دانستن این موضوع جالب است که پیش از مایکروسافت نام بیل گیتس با «بیسیک» (Basic) عجین بوده است و این ماجرا به زمان دانشجویى گیتس و دوستش «پل آلن» در ۱۹۶۴ بازمى گردد و در واقع همکارى مشترک آنها در توسعه بیسیک بود که چند سال بعد منجر به تاسیس مایکروسافت شد.
این دو با تولد اولین بیسیک در سال ۱۹۶۴ در کالج دارتموث به تلاش در توسعه آن همت گماشتند و در این راه با زیرکى و دوراندیشى مثال زدنى با طراحى انواع مفسرها و مترجم هاى بیسیک توانستند آن را به عنوان یکى از فراگیرترین و کاربردى ترین زبان هاى کامپیوترى تا امروز مطرح سازند.
بیسیک اکنون ۴۰ ساله است و هنوز هم گیتس در مایکروسافت آن را تر و خشک مى کند و مانند فرزندى دردانه به رشد و ترقى آن اهمیت مى دهد.ظهور میکروکامپیوترها در سال ۱۹۷۵ از یک سو و ارائه بیسیک پیشرفته توسط مایکروسافت از سوى دیگر خیلى سریع سبب شهرت بیسیک به مثابه یک زبان کاربردى که به صورت رایگان بر روى همه کامپیوترها قابل نصب بود، گردید.
در واقع بیسیک به علت ساختار مطلوبش پیش نیاز یادگیرى همه زبان هاى کامپیوترى شد.
مقاله اى که پیش رو دارید، بیل گیتس در جشن تولد ۲۵ سالگى فرزندش بیسیک (یعنى ۱۵ سال پیش) در مجله بایت منتشر کرد و طى آن براى اولین بار به شرح ماجراى شکل گیرى و رشد زبان بیسیک به همراه پل آلن پرداخته است، که مقایسه داده هاى آن با امروز که بیسیک به سن چهل سالگى رسیده و کامپیوترهاى شخصى به اوج پیشرفت و همگانى شدن نایل آمده اند، براى خواننده علاقه مند خالى از لطف نیست.از زمان اجراى اولین برنامه بر روى یک کامپیوتر انگلیسى زبان در سال ۱۹۴۸ تاکنون محاسبات وارد مرحله جدیدى شده است.
فقط در طول ۱۵ سال شاهد رشد و ترقى کامپیوترهاى ۸ بیتى با ۴ کیلوبایت رم به کامپیوترهاى ۳۲ بیتى با ۴ مگابایت رم چه در زمینه صنعت و چه در زمینه علوم بوده ایم.با توجه به رشد بسیار گسترده در زمینه سخت افزار، زبان بیسیک نیز بیست و پنجمین سال تولد خود را پشت سر مى گذارد و مفسر آن ۱۵ سال است که میکروکامپیوترهاى میلیون ها نفر را قابل دسترسى کرده است.
به جرات مى توان ادعا کرد که در دنیاى امروز کمتر کسى را مى توان یافت که نام و آوازه «بیل گیتس» رئیس و بنیانگذار مایکروسافت و ثروتمندترین مرد جهان را نشنیده باشد.
اما دانستن این موضوع جالب است که پیش از مایکروسافت نام بیل گیتس با «بیسیک» (Basic) عجین بوده است و این ماجرا به زمان دانشجویى گیتس و دوستش «پل آلن» در ۱۹۶۴ بازمى گردد و در واقع همکارى مشترک آنها در توسعه بیسیک بود که چند سال بعد منجر به تاسیس مایکروسافت شد.
متاسفانه در ابتدا بیسیک خوب شناخته نشد، در همین حال بیشتر از هر زبان دیگرى قابل دسترسى بوده و هست چرا که مجاناً بر روى هر کامپیوترى نصب مى شود.
قدرت و توانایى، سادگى استفاده از یک مفسر، مدیریت قوى، گستردگى و همه منظوره بودن، نوع انگلیسى لغات کلیدى و ترکیبات و آزادى بیسیک، همگى باعث تجربه بیشتر برنامه نویسان مى شود و مى تواند به عنوان یک زبان ایده آل به مبتدیان در شناخت بهتر کامپیوترشان کمک کند.
با توجه به سرگذشت بیسیک طى سال هاى طولانى و با وجود تکنولوژى قوى سیستم عاملى مانند OS/۲ و ویژگى برنامه نویسى موضوعى مى توانید به خوبى شاهد چگونگى حضور و رشد بیسیک تا به امروز باشید.
بیسیک بدون هیچ نیازى، مستقلاً به عنوان وسیله اى براى تبادل اطلاعات بین مردم و کامپیوتر ایجاد شد و در سال ۱۹۶۲ یکى از ریاضیدانان کالج دارتموث به نام پروفسور «توماس کورتس» طرحى را تسلیم «جان کمنى» رئیس کالج کرد.
در این طرح تمامى دانشجویان این کالج موظف به آموختن کامپیوتر در دوره ۴ ساله تحصیلشان بودند.کامپیوترهاى دسته گراى آن زمان چنین انتظارى را غیرممکن مى کردند چرا که اگر برنامه ساده اى به طور صحیح ترجمه مى شد کامپیوتر براى درک آن گاهى اوقات به روزها وقت نیاز داشت در نتیجه چنین برنامه اى تنها مى توانست نتیجه یک محاسبه را به عنوان جواب برگرداند و شخص برنامه نویس هرگز نمى توانست اجراى برنامه را ببیند.
کمنى و کورتس براى گسترش تحقیقات خود به آزمایشگاه هاى «هیت» و «بل» رفته و در آنجا سیستم عامل چند کاربره اى را براى کامپیوتر جدیدى که قرار بود به زودى تحویل کالج شود ساختند.
در همین زمان آنها به دانشجویان پیشنهاد کردند که زمان استفاده از کامپیوتر را بین خودشان تقسیم کنند اما به دلیل عدم وجود یک زبان ساده براى صحبت با ماشین دانشجویان به ندرت از کامپیوتر کالج استفاده مى کردند.
متاسفانه «فورترن» و «آلگول» نمى توانستند امکانات مناسب و آسانى را براى دانشجویان فراهم کنند لذا کد و دستورالعمل نمادى همه منظوره مخصوص افراد مبتدى (بیسیک) به عنوان یک ترکیب ساده و بهتر از فورترن و آلگول توسط دانشجویان کالج دارتموث ساخته شد.در اول ماه مى سال ۱۹۶۴ دانشجویان کالج دارتموث با اعلان معروف READY> در ترمینال هاى راه دورشان آشنا شدند.
بدین ترتیب آنها مى توانستند برنامه هاى ساده اى نوشته و آنها را براى ترجمه و اجرا انتقال دهند.
کمنى و کورتس به تولد بیسیک در کتابشان به نام «برگشت به بیسیک» اشاره کرده اند.
(انتشارات «ادیسون وزلى»، ۱۹۸۵) • ظهور میکروکامپیوترها اولین میکروکامپیوتر با حافظه اى بسیار کوچک که بیشتر جنبه نمایشى داشت در سال ۱۹۷۵ به صحنه آمد.
این کامپیوتر فقط زبان ماشین را مى فهمید.
در این هنگام من به اتفاق یکى از دوستانم به نام «پل آلن» فرصت را غنیمت شمرده و برگردانى از بیسیک را به منظور اجرا در آن فضاى بسیار کوچک حافظه نوشتیم.
دانشجویان با استفاده از اولین بیسیک، که براى دستگاه هاى MITS ساخته شده بود مى توانستند برنامه هایشان را بر روى این گونه کامپیوترها با حافظه ۴ کیلوبایت اجرا کنند.
در آن زمان براى ما حافظه بسیار ارزشمند بود به طورى که مجبور شدیم براى اشغال فضاى کمترى از حافظه، اعلان READY> - که چهار کارکتر فضا مى گرفت - را به OK> - که دو کارکتر فضا مى گیرد _ تبدیل کنیم؟
فشار محدودیت حافظه تا اندازه اى بود که ما را بر آن داشت که بیسیک را به عنوان یک مفسر پیاده سازى کنیم.
(مفسر بیسیک، برنامه اى است که فایل هاى بیسیک را به زبان ماشین ترجمه مى کند.) البته عامل دیگرى که ما را به سمت مفسرها هدایت مى کرد، متعادل بودن و آ سانى استفاده از مفسرها بود که به برنامه نویسى با بیسیک هنر و زیبایى خاصى مى بخشید.
یک برنامه نویس با استفاده از مفسر مى تواند به کامپیوتر وظیفه اى را محول کند، کامپیوتر نیز متقابلاً و بلافاصله به او جواب خواهد داد که این جواب مى تواند شامل گزارشى از خطاهاى احتمالى نیز باشد.
این تعامل مفسر به این خاطر است که وجود آن به عنوان بخشى از زبان در نظر گرفته شده است نه به عنوان برنامه اى کاملاً مجزا مانند یک مترجم.
با استفاده از تجربیاتى که از نوشتن یک مفسر بیسیک براى کامپیوتر PdP-8 در دوران دبیرستان به دست آورده بودم به اتفاق پل آلن بیسیک کامپیوتر اصلى خودمان را یک مفسر تک _ نمایش ساختیم.
به این ترتیب براى ذخیره بیشتر کد مبدا به فرم یک متن مجبور شدیم آن را به طور فشرده ترى ترجمه کنیم چرا که با فشار و محدودیت حافظه روبه رو بودیم.
به این ترتیب ما به مقصود خود رسیدیم و ترتیبى دادیم که برنامه نویس بتواند بلافاصله برنامه اش را دیده و هنگام اجراى برنامه با سرعتى قابل قبول مراحل مختلف آن را تشخیص دهد.
در مفسرى که ما ساختیم از تصاویرى پایین تر از یک بایت تا تصاویرى بیشتر از آنچه که کدهاى اسکى (ASCII) نیاز دارد براى نشانگذارى کلمات کلیدى بیسیک استفاده شده بود.
همچنین براى اولین بار فرمان هاى کوتاه TRON _TROFF را به منظور فعال و غیرفعال کردن ابزار اشکال زدایى توکار بیسیک مانند توانایى ردیابى را درون آن مفسر قرار دادیم.
قرار دادن کلمات رزرو شده بیسیک، پیغام هاى خطا و کتابخانه اعداد با ممیز شناور به منظور اجراى برنامه در یک ماشین ۴ کیلوبایتى از کارهاى بسیار سختى بود که به کمى تیزهوشى و زیرکى نیاز داشت.
کدهاى استفاده شده در آن زمان که از ظرافت و انعطاف خاصى برخوردار بود هنوز براى من به یاد ماندنى و جالب است.
برنامه نویسی ویژوال بیسیک(VB) مقدمه visual Basic (که زین پس آن را VB خواهیم خواند) از زبانهای برنامه نویسی تحت Windows می باشد که برای کدنویسی از دستورات زبان Basic سود می برد.
VB (مانند تمام زبانهای برنامه نویسی تحت ویندوز) با استفاده از تمام امکانات زیبای ویندوز (که باعث فراگیرشدن این سیستم عامل زیبا و توانمند در میان کاربران شده است)، طراحی محیطی زیبا و قدرتمند را برای پروژه مورد نظر، بسیار ساده می نماید.
در حال حاضر، به جرأت می توان گفت که یکی از انتخاب های اصلی برنامه نویسان حرفه ای در سطح جهان برای تهیه پروژه های با قابلیت های ویژه، VB می باشد، خصوصاً از VB6 که مایکروسافت عملاً با افزودن توانایی های متنوع بسیار به VB، حتی حاضر شد از دیگر زبانهای معروف تحت ویندوز خود مانند Visual C++ و Visual Foxpro بگذرد و سعی در هدایت تمام برنامه نویسان به سوی VB داشته باشد.
در حال حاضر که به تهیه این جزوه همت گماردم، نسخه آزمایشی VB.net در بازار وجود دارد ولی عموماً برنامه نویسان ازVB6 استفاده می کنند و لذا ما نیز این نسخه ازVB را برای آموزش انتخاب می کنیم، هر چند تمام خوانندگان عزیز می دانند که عموماً با فراگیری یک نسخه از یک برنامه، فراگیری نسخه های بعدی آن کار چندان دشواری نخواهد بود.
ویژوال بیسیک داتنت ویژوال بیسیک دات نت یکی از زبانهای معرفی شده به منظور نوشتن برنامههای مبتنی و با استفاده از چهارچوب دات نت است.
دستورات این زبان مشابه بیسیک است.
چون این زبان جزو مجموعه چهارچوب دات نت است کد تولید شده توسط آن(MSIL)در بیشتر مواقع فرقی با کدهای تولید شده توسط سیشارپ ندارد و کتابخانههای تولید شده در هر یک از این دو زبان مستقیماً در دیگری قابل استفادهاست.
اشتباهی که معمولاً در مورد ویژوال بیسیک دات نت میشود این است که با توجه به ویژگیهای بیسیک کلاسیک که زبانی ساده و مخصوص غیرحرفهایها بود، این زبان نیز غیرحرفهای تلقی میشود، در حالی که قابلیتهای آن کاملاً با سیشارپ برابر است.
در ضمن زبان مفسری نیست.
وی بی دات نت علاوه بر امکانات عادی مثل برنامه نویسی برای ویندوز قابلیت برنامه نویسی برای کنسولها و دستگاههای هوشمند (Smart Device) را هم دارد.
سیستم کدها بسیار منظم تر از وی بی ۶ شده و تمام کدها در کلاسها طبقه بندی میشود.
هم اکنون ویژوال بیسیک دات نت در بسته نرم افزاری ویژوال استودیو (Visual Studio) همراه با ویژوال سی شارپ (Visual C#)، ویژوال جی شارپ (Visual J#)، ویژوال سی پلاس پلاس (Visual C++) و ویژوال وب دولوپر (Visual Web Developer) ارائه میشود.
ویژوال بیسیک توسعه یافته زبان برنامهنویسی بیسیک میباشد.
بیسیک توسط پروفسور جان کمنسی و توماس کرتز از کالج دارتموث برای نوشتن برنامههای ساده ایجاد شد.
طراحی آن از اواسط دهه ۱۹۶۰ آغاز گردید.
ویژوال بیسیک تا نسخه ۳ به صورت ۱۶ بیتی بود.
از نسخه ۵ به بعد فقط ویرایش ۳۲ بیتی آن ارائه شد.
(نسخه ۴ هم به صورت ۱۶ بیتی و هم به صورت ۳۲ بیتی عرضه شده بود.) ویژوال بیسیک از نسخه ۶ به بعد بر پایه چارچوب داتنت (NET.) ارائه شد.
اگر چه با ظهور ویژوال بیسیک دات نت اکثر برنامهنویسان ویژوال بیسیک ۶ به آن گرویدند، ولی نسخه ۶ همچنان طرفداران ویژهی خود را دارد.
ویژوال بیسیک برای توسعه سریع نرم افزار (RAD یا Rapid Application Development) بر پایه رابط گرافیگی کاربر (GUI یا Graphical User Interface) توسعه داده شد.
دسترسی آسان و سریع به پایگاه دادهها با استفاده از DAO ،RDO یا ADO و ایجاد کنترلهای اکتیو ایکس از جمله مواردی هستند که این زبان را برای RAD مناسب کردهاند.
برنامهنویسی در ویژوال بیسیک به صورت رخدادگرا میباشد.
در برنامهنویسی تجاری، ویژوال بیسیک جز محبوبترینها است.
بنابه آماری که در سال ۲۰۰۳ منتشر شد، ۵۳٪ از برنامههای تجاری با استفاده از این زبان تولید شدهاند.
معرفی بخشهای VB هنگامی که VB اجرا می شود، توسط پنجره ای (شکل1)، نوع پروژه ای که می خواهید طراحی کنید از شما خواسته می شود.
همان طور که ملاحظه می فرمایید، انواع مختلفی از پروژه ها در این پنجره وجود دارد که در ادامه به برخی از آنها خواهیم پرداخت، ولی فعلاً نوع استاندارد پروژه های VB یعنی نوع Standard EXE را انتخاب و آن را باز(Open) می کنیم.
این نوع پروژه (که غالب پروژه ها را در بر می گیرد) برای تهیه برنامه های کاربردی(Applications) مورد استفاده قرار می گیرد.
پس از باز کردن پروژهStandard Exe ، پنجره اصلیVB (شکل 2 ) برای این نوع پروژه باز می شود: این پنجره، علاوه بر آنچه عموماً در پنجره های ویندوز می بینیم (مانند Title Bar وMenu Bar)، شامل چند بخش بسیار مهم می باشد: یک فرم(Form) خالی با عنوان (Caption)برابر Form1 وجود دارد.
این همان فرمی است که بلافاصله پس از اجرا (Run) شدن برنامه، روی صفحه نمایش، قرار می گیرد (این پیش فرض قابل تغییر است).
نوار ابزار Standard Buttons که دکمه هایی با کاربرد معمولاً بیشتر را شامل می شود.
تعدادی از این دکمه ها را در ویندوز می شناسید (مانند Copy, Paste, Undo, Redo, Open وSave) و برخی دیگر را در ادامه خواهیم دید.
پنجره ای سمت چپ تصویر دیده می شود.
این پنجره شامل برخی از کاربردی ترین کنترلهای قابل دیدن (VCL) می باشد.
در ادامه با VCLها آشنا خواهیم شد و از آنها بسیار بهره خواهیم برد.
به این پنجره Tool Bar (جعبه ابزار) گفته می شود.
در سمت راست تصویر سه پنجره دیگر دیده می شود.
در بالا، پنجره پروژه (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 Time)، Event 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/5 C+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 :