تاریخچه زبان VB
از امروز قصد دارم آموزش آموزش برنامه نویسی به زبان ویژوال بیسیک و در آینده نزدیک با آموزش ویژوال بیسیک دات نت برای شروع آموزش برنامه نویسی بهتره از زبان بیسیک شروع کنید و با مفاهیم برنامه نویسی در حالت کلی آشنا تر بشوید
در 3 یا 4 پست آینده با آموزش الگوریتم نویسی و نوشتن برنامه های محاسباتی در محیط ساده و بی آلایش بیسیک خواهم پرداخت اجازه بدین ابتدا با تاریخچه زبان بیسیک بیشتر آشنا بشیم و آموزش الگوریتم نویسی و برنامه نویسی رو به پست های آینده موکول کنیم
تاریخچه زبان بیسیک:
ویژوال بیسیک تاریخچه جالبی دارد .با گرافیکی شدن سیستم عامل ها (ویندوز) برنامه نویسی برای برنامه نویسان بسی مشکل تر شد زیرا برنامه نویس علاوه بر نوشتن برنامه می بایست برای برنامه محیط گرافیکی نیز ایجاد می کرد البته نه به روش امروزی که این کار به سادگی هرچه تمام تر انجام می پذیرد در آن زمان برای ایجاد فرم برنامه برنامه نویس با زبان C مجبور بود صدها سطر کد بنویسد تا یک فرم ساده ایجاد شود
این ویژوال بیسیک بود که همه چیز را عوض کرد حتی نیازی نبود که برای ایجاد فرم کدی بنویسید اولین پنجره را ویژوال بیسیک برایتان می ساخت برای ایجاد هر کنترلی دیگری نیز برنامه نویسی سختی ای را متحمل نمی شد و با کشیدن و رها کردن می توانست چندین کنترل را روی فرم ایجاد کند
ویژوال بیسیک از دوعبارت Basic که نشان می دهد این زبان براساس زبان Basic ساخته شده است و کلمه Visual به معنی بصری است و نشان دهنده این است که برنامه هایی که توسط این زبان نوشته می شوند جنبه بصری دارند و دارای عناصر گرافیکی هستند ساید تصور شود که ویژوال بییسیک زبانی ساده است اما به جرات می توان گفت که <یزوال بیسیک هرچیزی است به جز ساده ویژوال بیسیک برای ویندوز امکان ساخت کنترل های سفارشی را فراهم آورد در زیر نگاهی به نسخه های گوناگون ویژوال بیسیک می اندازیم :
ابتدا ویژوال بیسیک در سال 1991 توسط غول نرم افزاری دنیا یعنی مایکوسافت وارد بازار شد
در ویژوال بیسیک 3 امکان کار با بانک اطلاعاتی به وی بی (Visual Basic) اضافه شد
در ویژوال بیسیک 4 امکان کامپایل(ترجمه) کردن برنامه برای سیستم عامل های 16 و 32 بیتی فراهم آمد و امکان نوشتن COM و DLL به وی بی اضافه گشت
در نسخه 5 ویژوال بیسیک امکان ساختن ActiveX Control (کنترل های سفارشی) فراهم آمد
در نسخه 6 ویژوال بیسیک که در آن کل برنامه از نو نوشته شده بود کامپایل مفسری به سرعت اجرای برنامه ها کمک بسزایی کرد همچنین در این نسخه امکان ساخت کنترل های وب نیز فراهم آمد
در سال 2001 بزرگترین پیشرفت ویژوال بیسیک با ورود به دنیای دات نت فراهم شد و ویژوال بیسیک ثابت کرد برای برنامه های تحت وب هم گزینه ای بی نقص است
هر برنامه ای که می خواهید بنویسید ویژوال بیسیک دات نت بهترین گزینه است زبانی که روزی افرادی آن را برای سرگرمی جالب می دانستند آرام آرام بزرگ شد و امروز یکی از متداول ترین و پر طرفدارترین زبان های برنامه نویسی به شمار می آید
مقدمه
visual Basic (که ازین پس آن را VB خواهیم خواند) از زبانهای برنامه نویسی تحت Windows می باشد که برای کدنویسی از دستورات زبان Basic سود می برد.
VB (مانند تمام زبانهای برنامه نویسی تحت ویندوز) با استفاده از تمام امکانات زیبای ویندوز (که باعث فراگیرشدن این سیستم عامل زیبا و توانمند در میان کاربران شده است)، طراحی محیطی زیبا و قدرتمند را برای پروژه مورد نظر، بسیار ساده می نماید.
در حال حاضر، به جرأت می توان گفت که یکی از انتخاب های اصلی برنامه نویسان حرفه ای در سطح جهان برای تهیه پروژه های با قابلیت های ویژه، VB می باشد، خصوصاً از VB6 که مایکروسافت عملاً با افزودن توانایی های متنوع بسیار به VB، حتی حاضر شد از دیگر زبانهای معروف تحت ویندوز خود مانند Visual C++ و Visual Foxpro بگذرد و سعی در هدایت تمام برنامه نویسان به سوی VB داشته باشد.
در حال حاضر که به تهیه این جزوه همت گماردم، نسخه آزمایشی VB.net در بازار وجود دارد ولی عموماً برنامه نویسان ازVB6 استفاده می کنند و لذا ما نیز این نسخه ازVB را برای آموزش انتخاب می کنیم، هر چند تمام خوانندگان عزیز می دانند که عموماً با فراگیری یک نسخه از یک برنامه، فراگیری نسخه های بعدی آن کار چندان دشواری نخواهد بود.
خوانندگان عزیز توجه داشته باشید که برای فراگیری VB، آشنایی با ویندوز و Basic لازم است. همچنین بهتر است در هنگام مطالعه، VB باز باشد و مطالب را در همان لحظه کار کنید
مفاهیم بنیادی
در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 مربوط می شود) روی ندهد، این کدها اجرا نخواهند شد
تعریف متغیر ها
به اطمینان، قبلاً در برنامه نویسی (لااقل در Basic که پیش فرض بحث ما معرفی شده بود) از متغیرها زیاد استفاده کرده اید. در برخی زبانهای برنامه نویسی (مثل Basic) ، نوع متغیرهای بکار رفته در برنامه، لازم نیست از قبل تعریف شده باشد و در هنگام اجرا، کامپایلر، خود، آن را به نوع مورد نیاز (مثل Integer برای برای داده های عددی صحیح، یا String برای نوع داده رشته ای و کاراکتری و ...) تعریف و اجرا خواهد کرد. اما در برخی دیگر (مانند زبان برنامه نویسی Pascal)لازم است، نوع داده متغیرهای بکار رفته، در جایی از برنامه (و عموماً قبل از استفاده از آن) تعریف شوند.
در VB، از آنجا که VB از Basic برای کدنویسی استفاده می شود، به طور معمول، نیاز به تعریف نوع داده ها نیست. اما از آنجا که امروزه برنامه نویسان ترجیح می دهند که از کامپایلری برای برنامه نویسی استفاده کنند که او را به تعریف تمام متغیرها مجبور کند (زیرا اگر چنین نباشد، اگر او به اشتباه دستوری را غلط تایپ کند (مثلاً بجای then بنویسد Then) ، کامپایلر آن را به عنوان متغیری فرض می کند و در واقع بدون اینکه ما خطایی را دریافت کنیم، در روند برنامه مان مشکل پیدا می شود و خطایی رخ می دهد که شاید تشخیص علت آن سخت تر شود) ، می توانیم VB را موظف سازیم تا ما را مجبور به تعریف نوع داده متغیرها نماید.
اگر در ابتدای هر یونیت (Unit) عبارت Option Explicit نوشته شود، VB ما را مظف می کند که در آن یونیت، هر متغیری که بخواهیم استفاده کنیم، آن را قبل از استفاده، تعریف نماییم (لذا بهتر است ابتدای همه Unitها عبارت مذکور باشد) . یونیت (Unit) ها، بخش هایی از برنامه اند که در آنها کدنویسی می شود. مثلاً هر فرم، دارای یک Unit مخصوص به خود است که تمام Event Procedureهایی که تا بحال می نوشتیم، در آن قرار می گرفت.
همچنین اگر از منوی Tools گزینه Options را اتنخاب کنیم، و از لبه Editror (Tab Sheet) ، گزینه Require Variable Declare را چک مارک بزنیم، از این پس، VB هر فرمی که ایجاد می شود، به طور پیش فرض عبارت Option Explicit را در ابتدای آن خواهد نوشت و در واقع همیشه ما را موظف می سازد که متغیرها را تعریف نماییم.
برای تعریف متغیرها از دستور Dim به شکل کلی زیر استفاده می شود:
Dim variableNames As variablsType
به عنوان مثال دستور Dim a,b As Integer متغیرهایی را به نام a,b از نوع داده Integer (نوع داده عددی صحیح) تعریف می کند و سپس از آن می توانیم متغیر a را در برنامه مقداردهی نماییم.