unknown مدير بخش ويژوال بيسيك
Joined: 05 Dec 2004 Posts: 439 Location: Tehran
|
Posted: Sat Mar 05, 2005 6:42 pm Post subject: شروع برنامه نویسی با vb و چند مثال ساده |
|
|
شروع برنامه نویسی با vb :
حالا که تا حدی با دستورات و محیط vb آشنا شده اید برنامه نویسی با vb را با مثال ساده Hello world! شروع می کنیم.
vb را از منوی استارت اجرا کنید و در پنجره New Project همان گزینه Standard EXE را open کنید.
حالا در روی فرم خود یک کنترل Label و دو Command Button را در جای مناسبی که خود دوست دارید قرار دهید. نام دکمه ها را به CmdOk و CmdCancel تغییر دهید(این کار را در پنجره Properties سمت راست صفحه انجام می دهید). همچنین خاصیت Caption دکمه ها را به ترتیب به &Ok و &Cancel تغییر دهید. & یک خط کوچک زیر حرف بعد از خود می کشد و این به این معنی است که اگر در زمان اجرا کلید Alt را پائین نگه دارید و آن حرفی را که زیر آن خط کشیده شده است در روی کیبورد بزنید باز هم دستورات درون آن کنترل اجرا می شوند. برای نوشتن کد برای هر کنترل به سادگی می توانید روی آن کنترل دوبار کلیک نمائید. بنابراین برای نوشتن کد مربوط به Command Button روی آن دوبار کلیک کنید. حالا پنجره کد برنامه شما باز شده و یک رویه برای خاصیت کلیک Command Button به صورت خود کار نوشته شده است. باید به این نکته توجه کنید که تمام خصوصیات کنترل ها در رویه ها نوشته می شوند.
|
Private Sub CmdOk_Click()
End Sub |
نام تمام رویه های کنترل ها به این صورت نوشته می شود که اول بعد از کلمه Sub اسم کنترل آورده می شود و سپس یک زیر خط یا Underline و بعد از آن واقعه ای که قرار است با آن دستورات داخل رویه اجرا شوند آورده می شود. ممکن است این وقایع در کنترل های مختلف متفاوت باشد. vb با قرار دادن این وقایع کار برنامه نویسان را تا حد زیادی آسان کرده است. برای دسترسی به این رویه ها در قسمت بالای کد برنامه دو Combo Box وجود دارد (امیدوارم الان دیگه بدونید Combo Box چیه؟!). Comboی سمت چپ Object یا شیئی را که می خواهیم برای آن کد بنویسیم مشخص می کند و Combo ی سمت راست تمام رویه های موجود برای آن شیء را نشان می دهد که با کلیک بر روی هر کدام می توان به آن دسترسی پیدا کرد. ما در این مثال فقط با رویه ی کلیک دکمه کار می کنیم. یعنی هرگاه دکمه فشرده شود دستورات داخل آن بلاک اجرا می شوند. خوب حالا برای دکمه Ok و Cancel این کدها را بنویسید.
| Private Sub CmdOk_Click()
Label1.Caption = "Hello World!"
End Sub
Private Sub CmdCancel_Click()
End
End Sub |
در vb هنگام کد نویسی برای دسترسی به خصوصیات هر شئ کافی است نام آن را بنویسید (مواظب باشید منظورم از نام ، خاصیت Name هر شئ است نه خاصیت Caption) و بلافاصله بعد از آن یک دات (نقطه) بگزارید. در این هنگام اگر چنین کنترلی با این نام در روی فرم باشد تمام خصوصیات آن شئ به صورت لیستی در کنار مکان نما به شما داده می شود. بنابراین مجبور نیستید تمام کلمه ها را به صورت کامل بنویسید. فقط کافی است چند حرف اول آن را تایپ کنید و اگر به خاصیت مورد نظر رسیدید کلید Space را بزنید.vb به طور خود کار بقیه ی کلمه را برای شما می نویسد.
در مثال بالا ما می خواهیم وقتی دکمه Ok فشرده شد در برچسب ما جمله “Hello World!” نوشته شود.
کلمه کلیدی End در دکمه ی دوم باعث پایان برنامه می شود.(برای خروج از برنامه هایتان از این کلمه استفاده کنید.) خوب حالا به سادگی برنامه ای (هر چند ساده) به زبان vb نوشته اید.
برای اجرای برنامه روی دکمه Start که در بالای برنامه تان وجود دارد کلیک کنید و اجرای برنامه تان را ببینید. برای این کار از کلید میانبر F5 نیز می توانید استفاده کنید.
برای تبدیل برنامه به فایل اجرائی (EXE) منوی فایل را باز کنید و روی گزینه Make Project1.exe کلیک کنید. در پنجره باز شده آدرس محل ذخیره سازی و نام فایل اجرائی را انتخاب کنید و Ok کنید.
تابع MsgBox :
آیا تا کنون با هیچ پیغام خطائی در ویندوز روبرو نشده اید؟!
در vb به سادگی با تابع MsgBox می توانید پیغامی را به کاربر نشان دهید.
|
Function MsgBox(Prompt, [Buttons As VbMsgBoxStyle = vbOKOnly], [Title], [HelpFile], [Context]) As VbMsgBoxResult |
این تابع یک پیغام را نشان می دهد و مقدار بازگشتی آن ارزش انتخابی کاربر می باشد.
Prompt: متن اصلی پیغام می باشد که می خواهید به کاربر نشان دهید.
Buttons: نوع کلید های جعبه پیغام را نشان می دهد که مقدار پیش فرض آن فقط دکمه Ok می باشد.
انواع VbMsgBoxStyle :
|
Const vbAbortRetryIgnore = 2
Const vbApplicationModal = 0
Const vbCritical = 16 (&H10)
Const vbDefaultButton1 = 0
Const vbDefaultButton2 = 256 (&H100)
Const vbDefaultButton3 = 512 (&H200)
Const vbDefaultButton4 = 768 (&H300)
Const vbExclamation = 48 (&H30)
Const vbInformation = 64 (&H40)
Const vbMsgBoxHelpButton = 16384 (&H4000)
Const vbMsgBoxRight = 524288 (&H80000)
Const vbMsgBoxRtlReading = 1048576 (&H100000)
Const vbMsgBoxSetForeground = 65536 (&H10000)
Const vbOKCancel = 1
Const vbOKOnly = 0
Const vbQuestion = 32 (&H20)
Const vbRetryCancel = 5
Const vbSystemModal = 4096 (&H1000)
Const vbYesNo = 4
Const vbYesNoCancel = 3 |
Title: عنوان پیغام می باشد که در بالای آن قرار می گیرد.
HelpFile: آدرس فایل کمکی پیغام در صورت وجود است.
Context: نحوه باز شدن فایل کمکی می باشد.
مثال:
|
Private Sub Form_Load()
MsgBox "Welcome to vb world!", vbInformation, "First visit"
End Sub |
تابع MsgBox یک خروجی دارد که نشان می دهد کاربر چه دکمه ای را فشرده است.
یک مثال جالب:
|
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
Dim Ret As VbMsgBoxResult
Ret = MsgBox("Are you sure you want to exit this program?", vbCritical + vbYesNo, "Exit")
If Ret = vbYes Then
End
End If
End Sub |
حتما این کد را در vb اجرا کنید. هر گاه کاربر دکمه Close فرم را بزند از او برای اطمینان از این کار سوال می شود و در صورتی که کاربر موافق باشد از برنامه خارج می شود.
اگر فقط کد زیر را می نوشتیم کاربر مجاز به خروج از فرم نمی باشد:
|
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub |
VbMsgBoxResult نوع خروجی تابع MsgBox می باشد که انواع زیر را دارد:
|
Const vbOK = 1
Const vbCancel = 2
Const vbAbort = 3
Const vbRetry = 4
Const vbIgnore = 5
Const vbYes = 6
Const vbNo = 7 |
Form_Unload رویه ای است که وقتی فرمی که قبلا بارگزاری شده Unload می شود اجرا می شود.
تابع InputBox :
نوعی دستور ورودی می باشد که پیغامی را به کاربر نشان می دهد و متن ورودی کاربر را بر می گرداند.
|
Function InputBox(Prompt, [Title], [Default], [XPos], [YPos], [HelpFile], [Context]) As String |
Prompt : متنی است که به کاربر نمایش می دهید.
Title: عنوان جعبه ورودی می باشد.
Default: مقدار پیش فرض تابع می باشد که می توانید آن را تعیین کنید.
XPos: مختصات X جعبه ی متن.
YPos: مختصات Y جعبه ی متن.
HelpFile: آدرس فایل کمکی پیغام در صورت وجود است.
Context: نحوه باز شدن فایل کمکی می باشد.
خروجی تابع فوق از نوع String می باشد.
مثال:
|
Private Sub Form_Load()
Dim Ret As String
Ret = InputBox("What's your name?", "Please confirm your name", "Amir", 0, 0)
If Ret <> "" Then
Me.Caption = "Welcome" & " " & Ret
Else
Me.Caption = "Unknown user"
End If
End Sub |
قبل از نمایش فرم پیغام ورودی نمایش می یابد. اگر کاربر اسم خود را وارد کرد در قسمت بالای فرم به او خوش آمد گفته می شود ولی اگر کاربر اسم خود را وارد نکرد یا دکمه Cancel را فشرد جمله Unknown user نوشته می شود.
توجه داشته باشید کلمه Me در vb نماینده ی اسم فرمی می باشد که در حال حاضر در آن قرار داریم. به جای Me در مثال بالا می توانستیم نام فرم مثلا Form1 را بنویسیم.
مثال برنامه نویسی:
درست کردن یک ساعت دیجیتالی در vb :
برای زمان در vb توابع مختلفی وجود دارد. که هرگاه فراخوانی شوند زمان آن موقع را بر می گردانند. ولی مشکل این است که فقط زمان را برمی گردانند و ثابت می مانند. برای درست کردن ساعت به یک کنترل Timer احتیاج داریم که هر یک ثانیه یک بار تابع زمان را فراخوانی کند.
برای درست کردن ساعت یک کنترل Label را روی فرم قرار دهید و خاصیت AutoSize آن را True کنید سپس یک کنترل Timer را در فرم قرار دهید و خاصیت Interval آن را برابر 1000 قرار دهید سپس کد زیر را در فرم بنویسید.
|
Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub |
اگر دوست دارید تاریخ جاری را به همراه زمان ببینید از تابع Now به جای Time استفاده کنید.
|
Private Sub Timer1_Timer()
Label1.Caption = Now
End Sub |
مثال برنامه نویسی:
نمایش کدهای اسکی در یک لیست:
|
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 255
List1.AddItem i & " : " & Chr$(i)
Next i
End Sub |
قبل از نوشتن این کد یک ListBox را در فرم قرار دهید.
تابع Chr
|
Function Chr$(CharCode As Long) As String |
این تابع کاراکتری را که مربوط به شماره CharCode می باشد را برمی گرداند.
تابع Asc
|
Function Asc(String As String) As Integer |
این تابع کد ANSI مربوط به هر کاراکتر را برمی گرداند.
|
Private Sub Form_Load()
MsgBox Asc("A")
End Sub |
تابع LCase و UCase
|
Function LCase$(String As String) As String
Function UCase$(String As String) As String |
تابع LCase حروف را به حروف کوچک و تابع UCase حروف را به حروف بزرگ تبدیل می کند.
مثال:
قبل از هر چیز یک TextBox و دو CommandButton روی فرم قرار دهید.
|
Private Sub Command1_Click()
Text1.Text = LCase$(Text1.Text)
End Sub
Private Sub Command2_Click()
Text1.Text = UCase$(Text1.Text)
End Sub |
مثال برنامه نویسی:
برنامه ای که هنگام اجرا از کاربر رمز ورود می خواهد.
vb را همانند همیشه اجرا کنید (به طور خود کار Form1 ساخته می شود). ما در این برنامه به دو فرم احتیاج داریم. بنابراین برای اضافه کردن فرم دیگری روی Project Explorer راست کلیک کنید.(Project Explorer در سمت راست بالای صفحه قرار دارد) از منوی باز شده گزینه Add را انتخاب کنید و دوباره از گزینه های ارائه شده گزینه Form را کلیک کنید. در پنجره ی باز شده روی Form کلیک کنید و آن را Open کنید.حالا فرمی به نام Form2 به پروژه ی شما اضافه شده.
در Project Explorer روی Form1 دو بار کلیک کنید تا به محیط طراحی فرم اولممان باز گردیم. در روی فرم یک کنترل TextBox و دو کنترل CommandButton قرار دهید.برای راحتی کار نام اشیاء را تغییر ندهید فقط خاصیت Caption دکمه ها را به Ok و Cancel تغییر دهید و کد زیر را در قسمت کد فرم 1 بنویسید.
|
Private Sub Command1_Click()
'For Ok button
If LCase(Text1.Text) = "password" Then
Unload Me
Form2.Show
Else
MsgBox "Invalid Password!", vbCritical
Text1.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
Private Sub Command2_Click()
End 'For cancel button
End Sub |
در این مثال مقدار جعبه متن با رمز ما چک می شود و اگر برابر بود:
Unload Me باعث می شود فرم 1 از حافظه خالی شود (یعنی آن فرمی که قبلا باگزاری شده الان پاک می شود.)
Form2.Show : خاصیت Show از شئ فرم باعث می شود Form2 در حافظه بار شود و به نمایش در آید.
ولی اگر رمز ورودی کاربر غلط بود:
پیغام خطائی مبنی بر غلط بودن رمز به کاربر داده می شود
Text1.SetFocus : خاصیت SetFocus اشیاء باعث می شود مکان نما به آن شئ منتقل شود.
|
SendKeys "{Home}+{End}" : |
تابع SendKeys یکی از جالب ترین توابع vb می باشد که می توان با آن هر کلیدی را به کنترل فعال فرستاد.
دستور بالا باعث می شود تمام محتویات جعبه متن انتخاب شوند.
لیستی از دستوراتی که می توانید در تابع SendKeys استفاده کنید:
|
^ = Control
{enter} = Enter
% = Alt
{Del} = Delete
{ESCAPE} = Escape
{TAB} = Tab
+ = Shift
{BACKSPACE} = Backspace
{BREAK} = Break
{CAPSLOCK} = Caps Lock
{CLEAR} = Clear
{DELETE} = Delete
{DOWN} = Down Arrow
{LEFT} = Left Arrow
{RIGHT} = Right Arrow
{UP} = Up Arrow
{NUMLOCK} = Num Lock
{PGDN} = Page Down
{PGUP} = Page Up
{SCROLLLOCK} = Scroll Lock
{F1} = F1 .......Use {F2} {F3} and so On For others...
{HOME} = home
{INSERT} = Insert Upload |
مثال:
|
Private Sub Command1_Click()
SendKeys "%{F4}"
End Sub |
باعث بسته شدن فرم می شود.(با زدن کلید های Alt+F4)
|
Private Sub Command1_Click()
Dim i As Integer 'declare the variable
For i = 1 To 150 'how many times (you can change the 150 to whatever you want)
SendKeys "{CAPSLOCK}", True 'turn on the capslocks light, Then turn it off
SendKeys "{DOWN}", True 'just To give more time
SendKeys "{DOWN}", True 'just To give more time
SendKeys "{SCROLLLOCK}", True 'turn on the scroll lock light, turn it off
SendKeys "{DOWN}", True 'give more time
SendKeys "{DOWN}", True 'give more time
Next i
End Sub |
این مثال باعث روشن و خاموش شدن چراغ کیبورد می شود.
مولف:
امیر مرادآبادی (amirmoradabadi@yahoo.com) |
|