فهرست مطالب
مهارت دوم آشنايي با محيط و کنترلها
1-2 طراحي در ويژوال بيسيک ......... صفحه 41
1-1-2 طراحي پروژهها ......... صفحه 41
2-1-2 طراحي وب سايتها ......... صفحه 41
2-2 محيط VB2005 را به چند قسمت تقسيم کرديم ......... صفحه 42
3-2 خصوصيات مشترک کنترلها ......... صفحه 42
4-2 مشخصات مشترک و منحصر بفرد يک کنترل ......... صفحه 44
1-4-2 مشخصات منحصر بفرد فرمها ......... صفحه 44
2-4-2 خصوصيات مشترک RadioButton و CheckBox ......... صفحه 46
3-4-2 خصوصيت منحصر بفرد CheckBox ......... صفحه 46
4-4-2 خصوصيت منحصر بفرد کادر ComboBox ......... صفحه 46
5-4-2 خصوصيات منحصر بفرد NumericUpDown ......... صفحه 46
6-4-2 خصوصيات منحصر بفرد TextBox ......... صفحه 47
7-4-2 خصوصيات منحصر بفرد DataGridView ......... صفحه 47
8-4-2 خصوصيات منحصر بفرد (منو) MenuStrip ......... صفحه 48
5-2 کادرهاي محاوره اي ( Dialogs ) ......... صفحه 49
6-2 مثالها ......... صفحه 49
7-2 مشخصات پروژه ......... صفحه 50
1-7-2 (Application): اين Tab شامل تنظيمات پروژه است ......... صفحه 50
2-7-2 (Compile) ......... صفحه 51
2-7-2 (Refrence) ......... صفحه 51
2-7-2 (Resources) ......... صفحه 51
2-7-2 (Settings) ......... صفحه 51
8-2 مثال Dialog ......... صفحه 51
1-8-2OpenFile ......... صفحه 51
2-8-2 SaveFile ......... صفحه 52
3-8-2FolderBrowser : ......... صفحه 52
9-2 تبديل نوع متغير Sender براي شناسايي يک شيئ ......... صفحه 53
10-2 شيئ تايمر ( Timer ) ......... صفحه 53
11-2 ProgressBar ......... صفحه 54
12-2 متغير هاي Random ......... صفحه 54
13-2 PictureBox کنترلي براي تصاوير ......... صفحه 55
14-2 LinkLable کنترلهاي لينک ......... صفحه 55
15-2 TrackBar ......... صفحه 55
16-2 DomainUpDown ......... صفحه 55
17-2 ابزارهاي گروه بندي کنترلها ......... صفحه 55
18-2 ImageList مجموعه تصاوير ......... صفحه 56
19-2 WebBrowser نمايش دهنده صفحات اينترنت ......... صفحه 56
20-2 ToolStrip نوار ابزار ......... صفحه 56
21-2 HScrollBar ، VScrollBar ميله لغزاننده افقي و عمودي ......... صفحه 57
22-2 StatusStrip نوار وضعيت ......... صفحه 57
23-2 MonthCalender (تقويم) ......... صفحه 57
24-2 DateTimePicker (برچيننده[برگزيدن] تاريخ و زمان): ......... صفحه 57
25-2 توابعي با نوع Property ......... صفحه 57
26-2 تعريف اشياء جديد با ترکيب کنترلهاي موجود ......... صفحه 58
27-2 ContextMenuStrip ( منوي راست کليک ) ......... صفحه 59
28-2 ListBox جعبه ليست و CheckedListBox ليستي از جعبه هاي چک صفحه 60
29-2 MaskedTextBox قالبي براي کادرهاي متني ......... صفحه 60
30-2 ErrorProvider , NotifyIcon , ToolTip کنترلهايي براي طراحي فرمي زيبا و کاربر پسند ..............صفحه 61
1-30-2 Tooltip ......... صفحه 61
2-30-2 ErrorProvider ......... صفحه 61
3-30-2 NotifyIcon ......... صفحه 62
31-2 TabControl کنترل ايجاد سربرگ(Tab) ......... صفحه 62
32-2 BackgroundWorker ......... صفحه 63
33-2 کنترل نمايش دهنده آيتمها ListView ......... صفحه 65
34-2 FileInfo, DirectoryInfo, Path ......... صفحه 67
35-2 کنترل هاي COM (کنترلي از نرم افزارهاي نصب شده روي ويندوز ) ......... صفحه 70
1-35-2 Windows Media Player ......... صفحه 70
2-35-2 کنترل سخن گو TextToSpeech Class ......... صفحه 71
3-35-2 کنترل کننده صفحات Excel ......... صفحه 72
مهارت سوم الگوريتم ها
1-3 الگوريتمهاي جستجو ......... صفحه 74
1-1-3 جستجوي خطي: ......... صفحه 74
2-1-3 جستجوي دودوئي (باينري) ......... صفحه 75
2-3 الگوريتمهاي مرتب سازي ......... صفحه 76
1-2-3 مرتبسازي حبابي و انتخابي ......... صفحه 77
3-3 الگوريتمهاي تجاري ......... صفحه 78
4-3 فلوچارتها ......... صفحه 83
1-4-3 قوانين طراحي فلوچارتها ......... صفحه 86
1-4-3 هر الگوريتم بايد ويژگيهاي زير را داشته باشد ......... صفحه 87
1-4-3 ايجاد يک پروژه در چهار مرحله صورت ميگيرد ......... صفحه 87
مهارت چهارم بانکهاي اطلاعاتي
1-4 طراحي يک بانک اطلاعاتي در ويژوال بيسيک ......... صفحه 89
2-4 نمايش اطلاعات ذخيره شده در بانک اطلاعاتي ......... صفحه 89
3-4 اتصال به بانک اطلاعاتي ......... صفحه 90
4-4 کنترلهاي دسترسي به اطلاعات ذخيره شده ......... صفحه 92
1-4-4 نگاهي کلي به پروژه مياندازيم ......... صفحه 93
2-4-4 کنترل BindingSource ......... صفحه 94
3-4-4 کنترل TableAdapter ......... صفحه 95
5-4 محيط گرافيکي کنترل کننده بانک اطلاعاتي ( DataSet ) ......... صفحه 97
6-4 دستورات بانک اطلاعاتي براي ساخت Query SELECT ) ) ......... صفحه 98
1-6-4 انواع Query (پرسوجو) ......... صفحه 99
1-1-6-4 انتخاب SELECT which returns rows ......... صفحه 99
2-1-6-4 انتخاب SELECT which returns a single value ...... صفحه 99
3-1-6-4 انتخاب UPDATE ......... صفحه 99
4-1-6-4 انتخابDELETE ......... صفحه 99
5-1-6-4 انتخاب INSERT ......... صفحه 99
2-6-4 ساختار دستور SELECT ......... صفحه 99
7-4 اضافه کردن آيتمهاي خارجي ......... صفحه102
8-4 اتصال به بانکهاي طراحي شده (خارجي) ......... صفحه103
9-4 ايجاد اتصال دستي بين بانک و DataGrid ......... صفحه104
10-4 ايجاد اتصال دستي بين بانک و BindingNavigator ......... صفحه105
11-4 محاسبه و دريافت يک مقدار با دستورات SQL پس از انتخاب (SELECT which returns a single value) .. صفحه106
12-4 دسترسي به مثالها و بهترين مرجع برنامهنويسي Visual Studio .Net 2005(دات) ..صفحه107
13-4تعريفView(ديدگاهها)ادغام ستونهاي جداول بانک اطلاعاتي براي ساخت جداول جديد،توسط دستورات SQLصفحه 108
14-4 شکل و شمايل ظاهري اطلاعات در کنترلها(فرمت = Format) ......... صفحه112
مهارت پنجم گزارش گيري و چاپ اسناد با Crystal Report
1-5 معرفي کريستال ......... صفحه115
1-1-5 يک راه ساده براي اضافه نمودن BindingSource TableAdapter و Dataset به فرم ...صفحه 115
2-1-5 کنترل CrystalReportViewer ......... صفحه116
2-5 محيط طراحي سندهاي چاپي کريستال ......... صفحه 118
3-5 خصوصيات مشترک بين مشخصات اشياء چاپي ......... صفحه 119
1-3-5 سربرگ Common ......... صفحه 119
2-3-5 سربرگ Border ......... صفحه 119
3-3-5 سربرگ HyperLink ......... صفحه 119
4-5 تنظيمات پيش فرض براي سندهاي جديد ......... صفحه 120
5-5 فيلدهاي ويژه (Special Fields) ......... صفحه 120
6-5 فيلدهاي محاسباتي (Summary) ......... صفحه 120
7-5 ترسيم نمودارهاي آماري ......... صفحه 121
8-5 مرتبسازي اطلاعات درون سندهاي چاپي ......... صفحه 123
9-5 محيط طراحي Crystal Reports ......... صفحه 123
1-9-5 بخش اول Section1(Report Header) بخش ابتداي گزارش .. صفحه 124
2-9-5 بخش دوم Section2(Page Header) بخش ابتداي هر صفحه (سر صفحه) .... صفحه 124
3-9-5 بخش Section3(Details) تشريح گزارش ......... صفحه 124
4-9-5 و 5-9-5 انتهاي گزارش و انتهاي صفحه ......... صفحه 124
10- 5 گروه بندي گزارش بر اساس نوع اطلاعات (مثل نام يک کالا) ......... صفحه 124
11- 5 انتخاب سندهاي چاپي براي نمايش در کنترل کريستال ......... صفحه 125
12- 5 Formula Fields (فيلد فرمول) ......... صفحه 126
13- 5 Parameter Fields (فيلدهاي پارامتري) ......... صفحه 129
14- 5 مقداردهي به فيلدهاي پارامتري ......... صفحه 130
15- 5 چاپ متنهاي چند صفحهاي با فيلدهاي پارامتري ......... صفحه 130
مهارت ششم ساخت فايلهاي Setup از پروژه
1-6 طراحي آيکُن پروژه ......... صفحه 133
2-6 فايلهاي اجرايي پروژه ......... صفحه 133
3-6 نيازمنديها براي اجراي پروژه روي هر کامپيوتر (Prerequisites) ......... صفحه 134
4-6 ساخت اولين پروژه Setup ......... صفحه 134
5-6 پروژه setup از 3 قسمت تشکيل شده است ......... صفحه 135
1-5-6 Application Folder ......... صفحه 135
2-5-6 User Desktop ......... صفحه 135
3-5-6 User Programs Menu ......... صفحه 135
6-6 تنظيم مشخصات پروژه ......... صفحه 135
7-6 فايلهاي پروژه ......... صفحه 136
8-6 ميانبرها (shortcut) .............. 136
9-6 فولدرهاي پروژه ......... صفحه137
10-6 ساخت فايل Setup ......... صفحه 137
11-6 انتخاب نيازمنديها (Prerequisites) ......... صفحه 138
12-6 حذف و اضافه کردن پنجرههاي Setup ......... صفحه 138
13-6 آيکُن درون Add or Remove Program ......... صفحه 139
14-6 ساخت فايلهاي نصب پروژه با معجزهگر Publish ......... صفحه 140
15-6 تنظيم Publish براي ساخت Autorun ......... صفحه 140
16-6 مسير فايلهاي نصب شده Publish ......... صفحه 141
مهارت هفتم ساخت CD هاي نصب نرمافزار ( Autorun )
1-7 نرمافزار (AutoPlay Media Studio 6.0 Trial) ......... صفحه 143
2-7 پارامترهاي پروژه ......... صفحه 143
1-2-7 Dimensions ......... صفحه 143
2-2-7 General ......... صفحه 143
3-2-7 Style ......... صفحه 143
4-2-7 Options ......... صفحه 144
3-7 تصوير زمينه ......... صفحه 144
4-7 دکمهها (Button) ......... صفحه 145
5-7 ارتباط بين دکمههاي Autorun و فايلهاي Setup ......... صفحه 146
6-7 ساخت CD ......... صفحه 147
مهارت هشتم توابع
1-8 توابع overrides ......... صفحه 149
2-8 توابع هم نام با کارکردي متفاوت ( overload ) ......... صفحه 149
3-8 توابع با مقادير اختياري optional ......... صفحه 150
4-8 کاربرد توابع بازگشتي ......... صفحه 150
1-4-8 ساختار stack ......... صفحه 151
2-4-8 حل نمونهاي کوچک از ساختارهاي هم خانواده ......... صفحه 152
3-4-8 مثال الگوريتم فيبوناچي ......... صفحه 153
مهارت نهم آرايهها
1-9 معرفي آرايهها ......... صفحه 155
2-9 آرايه دو بعدي ......... صفحه 155
3-9 آرايههاي jugged (ناهموار ، نامنظم) ......... صفحه 156
4-9 آرايهاي از نوع Array و ArrayList ......... صفحه 157
5-9 عضوهاي Array ......... صفحه 157
6-9 آرايهاي از آرايهها ......... صفحه 158
7-9 ساختارArrayList ......... صفحه 158
1-7-9 توابع دروني ساختار ArrayList ......... صفحه 159
مهارت دهم مديريت فايلها و پوشهها
1-10 فايلها ......... صفحه 160
2-10 StreamReader ......... صفحه 160
3-10 StreamWriter ......... صفحه 162
4-10 استفاده از کلمه کليدي Using ......... صفحه 162
5-10 کلاس File ......... صفحه 162
6-10 کلاسDirectory ......... صفحه 162
7-10 کلاس DriveInfo ......... صفحه 162
مهارت يازدهم گرافيک Graphics
1-11 گرافيک ......... صفحه 163
2-11 تعريف انواع Brush ها براي متن ......... صفحه 164
1-2-11 ساختار Enum ......... صفحه 164
مهارت دوازدهم ساخت Reference ها (فايلهاي dll)
1-12 معرفي dll ......... صفحه 166
مهارت سيزدهم استفاده از توابع کاربردي
1-13 تابع Start ......... صفحه 167
2-13 تابع Sleep ......... صفحه 167
3-13 توابع عضو Environment ......... صفحه 167
4-13 تابع Console.Beep(Frequency, Duration) ......... صفحه 168
5-13 فرمهايي با شمايل دلخواه : (تابع Region )......... صفحه 168
مهارت چهاردهم پروژههاي Console
1-14 نوع پروژههاي Console ......... صفحه 169
2-14 بعضي از توابع کلاس Console ......... صفحه 169
مهارت پانزدهم قسمت سوم کدهاي فرم Form.Designer.vb
و
مثال Supermarket
1-16 کنترل انتخاب اسامي ......... صفحه 173
2-16 تعريف وقايع ......... صفحه 174
3-16 تعريف جداول اطلاعاتي ......... صفحه 174
4-16 توضيحات مثال Supermarket ......... صفحه 175
5-16 گذري کوتاه در وراثت ......... صفحه 177
6-16 وراثت در برنامهنويسي شيئ گرا ......... صفحه 177
7-16 چاپ اسناد ......... صفحه 178
مقدمه
ويژوال بيسيک نرم افزاري قدرتمند در عرصه برنامهنويسي تجاري است و تمام نيازهاي يک نرم افزار تجاري را، اعم از ورود، خروج و گزارش گيري از بانکهاي اطلاعاتي مثل Access, SQL, … را جوابگوست. همه ما برنامهنويسي را کاري تخصصي و منحصر به گروه خاصي ميدانيم اما اين علم نيز همانند تمام علوم به قوانين و مقرراتي وابسته است. وابستهترين قسمت برنامهنويسي اصول و قراردادهايي است که ما قصد داريم آنها را به زبان ساده، به گونهاي بيان نمائيم که با خواندن اين مجموعه و تنها با دانستن حروف انگليسي بتوانيد برنامههاي کاربردي و تجاري کاملي بنويسيد.
در طي بيان اين ساختار، به اصطلاحات و دستوراتي از ويژوال بيسيک ميپردازيم که به آنها نيازمنديم. سپس ساخت مجموعه کاملي از يک پروژه (از شروع آن تا ساخت CD نرم افزار که بطور Autorun اجرا شود) را به زبان ساده بيان خواهيم نمود. اين مجموعه آموزشي با اين ساختار را به اين دليل فراهم نموديم تا هر علاقهمند به برنامهنويسي بتواند برنامهنويسي را بياموزد و از اين طريق نياز کشورمان به برنامهنويسان بيگانه کاهش يابد. شايد هنوز هم به روان بودن اين مجموعه اعتقادي پيدا ننموده و يادگيري برنامهنويسي را به اين سادگيها ندانيد، اما به شما اطمينان ميدهيم که اين خطوط با تجربه شخصي از برنامهنويسي نوشته شده و حاصل تلاشي فراوان از طراح پروژه آموزشي فاضل است.
بحث را با مقدمات ضروري و طراحيالگوريتم به زبان ساده شروع ميکنيم که هم زمان با معرفي دستورات ويژوال بيسيک است.
سپس با معرفي بانکهاي اطلاعاتي و طراحي چندين بانک به اصول اوليه و مورد نيازتان خواهيم پرداخت. بخش گزارشگيري را نيز با Crystal Report شروع نموده و به بيان ويژگيها و طريق استفاده از آن براي چاپ اسناد و فاکتورها و ديگر اطلاعات خواهيم پرداخت. محيط ويژوال بيسيک طوري طراحي شده که همه بتوانند با کمي دقت و حوصله برنامههاي خود را طراحي و پيادهسازي نمايند.
بعد از نوشتن يک برنامه ساده، به شما طريقه ساخت فايل اجرايي يا همان setup را آموزش ميدهيم تا ديگران به راحتي و با اجراي setup.exe (همانند تمام نرم افزارها) آن را روي کامپيوتر خود نصب نمايند. از آنجايي که هر برنامهنويس ميخواهد از نرم افزارش، يک CD نرم افزار بسازد، که بعد از قرار دادن آن روي CD-Drive به طور Autorun (خودکار) اجرا شود، يکي از نرم افزارهاي موجود را برايتان تشريح نموديم با نام [AutoPlay Media Studio 6.0 Trial]. با اين تفاصيل شما نيز پس از خواندن اين مجموعه، روشهاي طراحي و اجراي يک پروژه را به طور کامل فرا خواهيد گرفت. نرم افزار Crystal Report همراه ويژوال بيسيک عرضه ميشود و با آن يک فرم قابل چاپ (مثل فيش حقوقي) را طراحي خواهيد کرد.
همه اين کارها با اصول اوليه و قدرت (wizard ها) يا همان معجزهگرها امکانپذير است. در نسخههاي قبلي ويژوال، يک برنامهنويس ميبايست تمام کدهاي مربوط به اعمالي چون اتصال به بانکهاي اطلاعاتي يا نوشتن و اضافه نمودن يک فرم براي چاپ مطالب را به طور دستي يا از جايي رونويسي ميکرد. اما ويژوال بيسيک 2005 اين امکانات را با دِرَگ کردن (گرفتن Icon ها و کشيدن و رها کردن) آنها با موس، فراهم آورده است. شايد از ترتيب مباحث اين جزوه انتقاد کنيد اما اين بهترين شيوه براي آموزش درسي است که از نظر دانشپژو، يادگيري آن بسيار سخت و دشوار تصور شود. اين شيوه با مقدمه چيني براي بيان يک دستور شروع ميشود، سپس با مثالي ساده، کاربرد آن دستور بيان شده است.
در مرحله ابتدايي آموزش، دانشپژويان اولين پروژه خود را شروع ميکنند. بدون اينکه بر محيط ويژوال بيسيک تسلط کامل داشته باشند. در ادامه، با ارائه مطالب جديد، به اين محيط آشنا خواهند شد. در هر مرحله با پيشرفت مباحث و ارائه هر مثال، کنترلهاي جديد معرفي ميشوند. در نتيجه با بيان کمترين اطلاعات از اين محيط دانشپژو ميتواند پروژهاي را طراحيکند. اين امر باعث ميشود، تا به يادگيري برنامهنويسي تشويق شود. اين شيوه، مرحله به مرحله پيش ميرود و اطلاعات جديد بيان نشده در يک مرحله را به مراحل بعدي موکول ميکند تا مباحث، دائماً توسط دانشپژو دنبال شوند و براي يادگيري مطلبي که به فصلهاي بعدي موکول ميشود، مسرانه تلاش نمايد.
نقطه قوت اين مجموعه در آن است که در ابتدا با مباحث سنگين شروع نميشود. مطالب ارائه شده از مهارت اول تا انتهاي پروژه، بگونهاي انتخاب شده اند که هر علاقهمند به برنامهنويسي را قادر ميسازد، پروژهاي براي يک مغازه خانگي يا يک دفتر تلفن را طراحي کند. با شروع مباحث هر ضميمه به راهکارهاي مفيدي دسترسي مييابيد و آنها را مکمل مهارتهاي قبلي خود خواهيد ديد. سعي کرديم مطالب را خسته کننده بيان نکنيم. تشنگي ايجاد شده براي يادگيري و از اين شاخه به آن شاخه پريدنهاي ما، براي آموزش مطالب جديد، توان طراحي و يادگيري شما را بالا خواهد برد. چون هميشه در انتظار يادگيري مطلب جديد براي کامل شدن مثال هستيد. اين شيوه، آموزش بر پايه مثالهايي است که دانشپژو آنها را مطرح ميکند، و هر خط را با بيان دليل و کشف منطق اجرايي آن مينويسد و تغييراتي دلخواه درون مثالها ايجاد ميکند که براساس آگاهي از چگونگي اجراي دستورات است.
اين مجموعه ميتواند، براي هر علاقهمند به برنامهنويسي، نقطه آغاز و اساسي در تسلط کافي به ويژوال بيسيک باشد. هر برنامهنويس بايد بتواند خطاهاي ايجاد شده از تغييرات يک دستور را شناسايي و رفع نمايد. در هر مرحله با ايجاد خطاهاي عمدي در مثالهايتان (مثل حذف قسمتي از يک دستور)، به بررسي کامل پيغامهاي خطا بپردازيد تا با بروز هر خطايي بتوانيد آن را تشخيص داده و رفع کنيد. چنانچه اين مباحث را که به ترتيب نوشته شده ادامه دهيد، خودتان به راحت بودن برنامهنويسي با ويژوال 2005 پيخواهيد برد و تنها توصيهاي که داريم اين است "مباحث را با تمام سادگي بپذيريد و در هر مرحله مثالهاي CD را به دقت مطالعه کنيد".
مطلب مهم ديگر اين است که "تمام برنامهنويسان براي اجراي پروژههاي خود از کدهاي نوشته شده و قابل اجراي موجود استفاده ميکنند و تنها تغييراتي جزئي را در اين کدها اعمال مينمايند تا به آنچه ميخواهند دست يابند". براي مثال: ويژوال بيسيک 2005 قادر به نوشتن محافظ تصوير بسيارجالبي است و با اندکي جستجو در کدهاي نوشته شده در آن، ميتوانيد متنهاي نوشته شده بر روي صفحه را عوض کنيد. (همان کاري را که ما در اين مجموعه اضافه نموديم و شما ميتوانيد مطالب دلخواه را در کادرها بنويسيد و ذخيره کنيد) ديدن بعضي کدهاي پيچيده در اين مثال شما را گمراه نکند و نگران کدهاي گرافيکي بکار رفته نباشيد چون تمام کدهاي سخت و پيچيده را خود ويژوال بيسيک خواهد نوشت، و شما تنها قسمتهايي را خواهيد نوشت که پيچيدگي شان بستگي به طراحي خودتان دارد.
هر برنامهنويس تجاري نيازمند کدهائي است که تاريخ را از ميلادي به شمسي تبديل نمايد و يا بتواند ارقام را به حروف نمايش دهد. اين قسمت توسط تيم نرم افزاري ما نوشته شده و شما بسيار راحت از آن استفاده خواهيد نمود بدون اينکه دردسرتان داده باشيم.