آموزش مصور ويژوال بيسيك visual basic در مجيد آنلاين

وضعیت
موضوع بسته شده است.

saalek110

Well-Known Member
ماشين حساب با ليست باكس

ابزار لازم:
همان ابزار هاي ماشين حساب قبلي بعلاوه ليست باكس.
نامگذاري:
l1,l2,t1,t2,c1,ls1
كد نويسي:
[ltr]
Dim sum As Long' be jaaye integer
Dim j As Long
Private Sub Form_Load()
Form1.Caption = "SIMPLE CALCULATOR"
c1.Caption = "Add"
l1.Caption = "write numbers"
l2.Caption = "SUM="
t1.Text = 0
t2.Text = 0
t1.MaxLength = 9 ' be jaaye 4
t2.Enabled = False
End Sub

Private Sub c1_Click()
j = sum
sum = sum + t1.Text
t2.Text = sum
ls1.AddItem (j & "+" & t1.Text & vbtab & "sum=" & sum)
t1.Text = ""
End Sub[/ltr]
خطوط آبي رنگ جديد اضافه شده.

متغير ((لانگ)) پذيرش بيشتري دارد . در قسمتي كه با رنگ قرمز مشخص شده ، مي بينيد كه به جاي 4 توانسته ايم اجازه دهيم ورودي عددي 9 رقمي باشد.

همچنين به شيوه توضيح نويسي كه با رنگ سبز مشخص شده ، توجه كنيد. اين توضيحات اجرا نمي شود. توضيحات براي خوانايي برنامه لازم است.

a1.gif

.
 
آخرین ویرایش:

Mikhak

Active Member
سالك جان آموزش رو همينطور ادامه بده
در ضمن گفتم فقط عكس گذاشتي منم يه نموره در مورد هر متغير يا بهتره بگيم نوع داده اي بيشتر مورد استفاده قرار ميگيره يه توضيح بنويسم
Boolean: جهت مقادير درست يا نادرست
• Byte: جهت مقادير صحيح صفر تا ۲۵۵ (تنها مقادير مثبت)
• Char: جهت مقادير نويسه ها يا حروف يونيکد
• Date: جهت مقادير تاريخ و زمان بين اول ژانويه ۰۰۰۱ و ۳۱ دسامبر ۹۹۹۹
• Double: جهت مقادير اعشاری با دقت مضاعف
• Integre: جهت مقادير صحيح بين +۲,۱۴۷,۴۸۳,۶۴۷ و -۲,۱۴۷,۴۸۳,۶۴۸ (۴ بايت)
• Long: جهت مقادير صحيح بين -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ و +۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ (۸ بايت)
• Short: جهت مقادير صحيح بين -۳۲,۷۶۸ و +۳۲,۷۶۷ (۲ بايت)
• Single: جهت مقادير اعشاری با دقت واحد
• String: جهت مقادير رشته ای با تعداد حروف صفر تا دو ميليارد حرف

پر کاربردترين انواع داده ای عبارتند از Integer، Date، Boolean و String.
----------------------
سينا
 

saalek110

Well-Known Member
معرفي 3 ابزار ديگر


b3.gif
b2.gif
b1.gif


b4.gif


براي اين كه اين 3 ابزار با هم كار مي كنند، بايست آنها را با كد نويسي به هم مربوط كرد.
از بزرگ به كوچك اينها را
a,b,c
بناميد. اول درايو ، بعد دايركتوري ، بعد فايل. ، و بعد كد زير را ، به پنجره كد بيافزاييد.
[ltr]
Private Sub a_Change()
b.Path = a.Drive
End Sub

Private Sub b_Change()
c.Path = b.Path
End Sub
[/ltr]
حالا وقتي درايو را كاربر عوض مي كنه...در ابزار دوم پوشه هاي همان درايو را نشون ميده و وقتي دايركتوري تغيير كنه...فايلهاي همون دايركتوري در ابزار سوم نمايش داده ميشه.
وقتي روي هر يك از اين ابزارها در پنجره فرم كليك كنيد ، رويداد چنج باز ميشه، همان طور كه در مورد دكمه رويداد كليك باز ميشد.
بعدا كار با اين ابزارها را ميگيم. فعلا اشاره اي شد تا ابزارهاي كمتري از جعبه ابزار بماند.
 
آخرین ویرایش:

saalek110

Well-Known Member
يك برنامه خيلي ساده

ابزار لازم:
يك دكمه
نام گذاري:
c1
كد نويسي:
[ltr]Private Sub Form_Load()
c1.Top = 250
End Sub

Private Sub c1_Click()
c1.Top = 1500
End Sub[/ltr]
بعد اجرا ، وقتي دكمه كليك بشه ، پرش مي كنه چند سانت پايين تر.

b5.gif
 
آخرین ویرایش:

saalek110

Well-Known Member
طريقه انتخاب اشياء متعدد

برای اینکار با ماوس دور ابزارهای مورد نظر کادر بکشید. همان طور که در هارد خود تعدادی فایل را انتخاب می کنید.

اگر با اين روش انتخاب عملي نبود(مثلا وقتي اشيايي ميان آنها هستند كه نبايد انتخاب شوند) مي توانيد كليد شيفت را نگه داريد و اشياي مورد نظر را كليك كنيد.

در ویندوز وقتی بخواهید چند فایل دور از هم را انتخاب کنید . اولی را انتخاب کرده و کلید کنترل را نکه می داریم و بعدی را انتخاب می کنیم. ولی اینجا در وی بی گویا شیفت هم کار کنترل را انجام می دهد.
 
آخرین ویرایش:

saalek110

Well-Known Member
تنظيمات محل قرارگیری کنترلها و جلو و عقب بودن یا قفل بودن و غیره


i1.gif


در شکل بالا اولین گزینه منوی Format یعنی Align را باز کرده ایم.
کار انتخابهای زیرمنوی Align از شکل جلوی آنها کاملا مشخص است. مثلا اولی که نوشته Lefts . یعنی اینکه از کنار چپ می آید کنترل ها را تراز می کند. مثل این می مونه که با یک چوب صاف از سمت چپ متغیرها را هل بدهیم تا همه در یک ردیف قرار بگیرند.
نکته: این که همه کنترلها مساوی مقدار چپ کدام کنترل می شوند فکر کنم بسته به اینه که کدام کنترل اول انتخاب بشه. خودتان ور بروید تا قانونش دستتان بیاید.


i2.gif


در زیرمنوی بعدی یعنی Make Same Size هم که همان طور که از اسمش بر می آید برای هم اندازه کردن کنترل ها استفاده می شود.
نکته: همان نکته منوی قبلی. احتمالا اونی که اول انتخاب بشه تعین می کنه کدام اندازه کدوم یکی بشود.


i3.gif


در عکس بالا گزینه Lock را داریم. گاها وقتی سورسی را از اینترنت دانلود می کنید می بینید که نمیشه کنترلها را در حالت طراحی روی فرم جابجا کرد. در این حالت از گزینه مذکور برای از قفل خارج کردن استفاده می کنیم.
==============
بقيه تنظيم گرها مشابه بالا است(از نام آن و ور رفتن با آنها کمک بگیرید. یا در اینترنت سرچ کنید) و ارزش بحث کردن نداره. یکی مونده به آخری یعنی Order را هم در بحث ابزارهای Shape و Line استفاده کردیم و کارش این است که یک ابزار را روی دیگری یا زیر دیگری می اندازد.
 
آخرین ویرایش:

Mikhak

Active Member
سالك جان ادامه بده كارت عاليه و آموزش خيلي خوبه
وقتي رسيدي به كد نويسي و حلقه ها و شرط ها منم ميام كمكت
------------
سينا
 

saalek110

Well-Known Member
معرفي ابزاري به نام فريم


b6.gif


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

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


b7.gif

 
آخرین ویرایش:

saalek110

Well-Known Member
پنجره آبجكت بروسر

اين پنجره از 3 راه قابل دسترس است
اول از منوي ويو
دوم با كليك راست در ((پنجره كد)) و
سوم با استفاده از كليد ((اف 2))شايد راههاي ديگري هم باشد كه من هنوز پيدا نكرده ام.


c1.gif


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

چند خط پايين تر از ((ادد آيتم)) ، مي توانيد ((كليير))(پاك كردن) را ببينيد. كار با اين دستور باعث پاك شدن محتويات ((ليست باكس)) مي شود. بقيه عناصري كه شكلك كنار آنها از نوع ((ادد آيتم)) را هم پيدا كنيد. حدود 10 تا بود وقتي من شمردم.
كلا 3 نوع از اين شكلك ها داريم:

آنكه شبيه دست است كه همان صفات اشياء است كه از ((پنجره پراپرتي)) قابل دسترسي است.
آنكه شبيه رعد و برق است را بعدا انشا الله مي رسيم بهش.
ولي سومي را فعلا مي خواهيم كار كنيم. برويد اين مورد را در اشياي ديگر (مثل دكمه - تكست باكس - ليبل - و بقيه) هم بررسي كنيد .
 
آخرین ویرایش:

Mikhak

Active Member
البته اگه بخواين يك شي جزوي از اين frame بشه بايد اونو توش رسم كنين
يعني اگه براي رسم كردن شي رو toolbars دابل كليك كنين و شي بيفته رو frame جزئي از اون frame نميشه يا اگه copy paste كنين بايد اول كپي كنين بعد رو فريم كليك كنين بعد paste بزنين
همونطور كه سالك جان گفت بايد اول انتخابش كنين فقط با يه كليك رو toolbar بعد اونو رسم كنين
----------------
سينا
 
آخرین ویرایش:

saalek110

Well-Known Member
ماشين حساب با دكمه پاك كردن

ابزار لازم:
دو ليبل - دو تكست باكس - دو دكمه - يك ليست باكس.
نامگذاري:
l1,l2,t1,t2,c1,c2,ls1
كد نويسي:
[ltr]
Dim sum As Long
Dim j As Long
Private Sub Form_Load()
Form1.Caption = "SIMPLE CALCULATOR"
c1.Caption = "Add"
c2.caption="clear"
l1.Caption = "write numbers"
l2.Caption = "SUM="
t1.Text = 0
t2.Text = 0
t1.MaxLength = 9
t2.Enabled = False
End Sub

Private Sub c1_Click()
j = sum
sum = sum + t1.Text
t2.Text = sum
ls1.AddItem (j & "+" & t1.Text & vbtab & "sum=" & sum)
t1.Text = ""
End Sub
Private Sub c2_Click()
ls1.Clear ' clear listbox
t2.Text = "" ' clear textbox
sum=0 ' sefr kardane mohaasebate ghabl
End Sub
[/ltr]
خطوط آبي رنگ جديد اضافه شده.

ما با دستور ((كليير)) ليست باكس را پاك كرده ايم و با همان روش معمولي، تكست باكس را پاك كرده ايم.


c2.gif

 
آخرین ویرایش:

saalek110

Well-Known Member
صفت پيكچر فرم - بك استيل ليبل

شما می توانید از پنجره پراپرتی صفت Picture فرم را بزنید و از هارد خود عکسی را به عنوان بک گراند فرم قرار دهید. نتیجه را در زیر می بینید:


i5.jpg



==================================
لیبل هم صفتی دارد با نام BackStyle
می توانید آن را در حالت شفاف قرار دهید.


p1.gif



p2.gif


حالا نمي دونم لیبل با بوردر استيل اينجا بهتر بود يا بدون آن. در شكل بالا بدون بوردر استيل است.
همچنین صفت Alignment را Center کردیم تا متن در وسط لیبل قرار گیرد(البته این قضیه وقتی مهم تره که لیبل بوردر استیل داشته باشد).
 
آخرین ویرایش:

Mikhak

Active Member
ساختارهای تصمیم:
يكي از مهمترين ساختار هايي كه در همه ي زبان هاي برنامه نويسي مورد استفاده قرار ميگيره همين ساختار هاي شرطي يا ساختار هاي تصميم گيري هستش
براي مثال در يك برنامه كوچيك وقتي بخواين دو عدد رو مقايسه كنين و بزرگترين رو بدست بيارين از همين ساختار استفاده ميشه
به مجموعی ای از دستورالعمل ها که امکان انتخاب و تصمیم گیری از بین یک یا چند موضوع را به ما می دهند ساختار های تصمیم گفته ميشود.

جمله شرطی If :

از If برای تصمیم گیری بین یک یا چند شرط استفاده می كنيم كه به چند روش ميتونيم ازش استفاده كنيم

شكل كلي:
کد:
If شرط    Then
   Vb دستورات مجموعه
End If
در اين نوع اگر شرط درست باشد آنگاه مجموعه دستوراتی که در آن بلاک نوشته شده اجرا می شوند وگرنه هیچ اتفاقی نمی افتد.

شكل دوم
کد:
If   شرط  Then
    1 Vb دستورات مجموعه
Else
    2 Vb دستورات مجموعه
End If
در روش دوم اگر شرط درست باشد آنگاه مجموعه دستورات 1 اجرا می شود و در غیراین صورت مجموعه دستورات 2 اجرا می شوند.

شكل سوم
کد:
If  شرط   Then  دستور
در نوع سوم اگر شرط درست باشد آنگاه فقط تنها یک دستور بعد از Then اجرا می شود وگرنه هیچ اتفاقی نمی افتد.

شكل چهارم
کد:
If   شرط  Then  دستور1  Else  دستور 2
در نوع چهارم اگر شرط درست باشد آنگاه فقط دستور 1 اجرا می شود در غیر این صورت فقط دستور 2 اجرا می شود.

نکته:
در نوع سوم و چهارم چون بلاکی از دستورات نداریم و فقط یک دستور است به End If احتیاجی نداریم.

مثال:
کد:
Dim x As Boolean
If x Then
    Text1.Text = "The Value of x is True"
    Beep      
End If
در این مثال اگر مقدار منطقی متغییر x ارزش درستی داشته باشد آنگاه مجموعه دستورات داخل بلاک انجام می شوند.
یعنی خاصیت متن از شیء جعبه متن برابر آن رشته قرار می گیرد و سپس کلمه Beep یک صدای بیپ در اسپیکر کامپیو ترتان ایجاد می کند.

نکته:
اگر در vb مقدار منطقی گزاره ای ذکر نشود vb به طور خودکار آن را ارزش درست در نظر می گیرد. پس عملا دستورات زیر با دستورات بالا برابر است:
کد:
 Dim x As Boolean
If x = True Then
    Text1.Text = "The Value of x is True"
    Beep
End If

مثال:
کد:
Dim Res As Integer
If Res >= 0 Then
    Text1.Text = "The number is positive"
Else
    Text1.Text = "The number is negative"
End If
در این مثال اگر مقدار متغییر Res بزرگتر یا مساوی صفر باشد رشته "The number is positive" و در غیر این صورت رشته "The number is negative" نوشته می شود.

نکته:
در vb ارزش نادرستی با مقدار صفر وارزش درستی با مقدار یک ( یا مقداری غیر از صفر) نشان داده می شود.

مثال:
کد:
If x = Y Then Text1.Text = "Equal"
در این مثال اگر مقدار x و y برابر باشد آنگاه مساوی در جعبه متن نوشته می شود.

مثال:
کد:
If a > b Then Max = a Else Max = b
در این مثال اگر a بزرگتر ازb باشد مقدار ماکسیمم برابر a و در غیر این صورت مقدار ماکسیمم برابر b می شود.(همون كه اول گفتم)

ساختار ElseIf
اگر بخواهیم با استفاده از If شرط های گوناگونی را چک کنیم از ElseIf می توان استفاده کرد. البته من این کار را توصیه نمی کنم چون باعث کم شدن خوانایی برنامه ، سردرگمی برنامه نویس و طولانی تر شدن برنامه می شود. براي اين كار از ساختار select case استفاده ميكنيم كه به زودي اونم توضيح ميدم :)

مثال:
کد:
If a > 0 Then
    Text1.Text = "positive"
ElseIf a < 0 Then
    Text1.Text = "negative"
Else
    Text1.Text = "zero"
End If
در این مثال اگر مقدار متغییر بزرگتر از صفر باشد کلمه مثبت و در غیر این صورت اگر مقدار متغیر کوچکتر از صفر باشد کلمه منفی و در غیر این صورت کلمه صفر در جعبه متن نوشته می شود.


موضوع پست بعدي : ساختار Select Case


-------------------
سينا
 

Mikhak

Active Member
ساختار Select Case

ساختار Select Case :

اين ساختار براي مواقعي خوبه كه تعداد شرطامون زياد باشه مثلا اگه بخوايم برنامه اي بنويسيم كه يك عدد رو بگيره و از يك تا 10 بررسي كنه و مثلا اگه عددمون 7 بود چاپ كنه 7 يا اگه 3 بود چاپ كنه 3 و .....
Select Case گزینه خوبی برای تصمیم گیری از بین مقادیر مختلف هستش.
بر عکس ElseIf خوانایی برنامه با Select Case بالا ميره .

شكل كلي دستور :
کد:
Select Case عبارت
Case 1 عبارت
   مجموعه دستورات 1
Case 2 عبارت
    مجموعه دستورات 2
Case n عبارت
   مجموعه دستورات n
Case Else
   مجموعه دستورات Else
End Select
در این دستور عبارتی را که می خواهیم مقادیر مختلف آن را چک کنیم در جلوی Select Case می نویسیم.
سپس هر مقدار را در جلوی Case می نویسیم.
اگر مقدار ارزیابی شده عبارت مورد نظر برابر هر کدام از حالات باشد مجموعه دستورات بعد از آن حالت اجرا شده سپس دستور Select Case خاتمه می یابد.
اگر هیچ کدام از حالات درست نباشد مجموعه دستورات Else اجرا می شود.

مثال:
کد:
Select Case sVal
Case 0
    Text1.Text = "zero"
Case 1
    Text1.Text = "One"
Case 2
    Text1.Text = "Two"
Case 3
    Text1.Text = "Three"
Case 4
    Text1.Text = "Four"
Case 5
    Text1.Text = "Five"
Case Else
    Text1.Text = "Error..."
End Select

در دستور Select Case از To برای انتخاب محدوده ای از اطلاعات استفاده می شود.
مثال:
کد:
Case 10 To 20

همينچنين برای استفاده از عملگر های رابطه ای باید کلمه Is را نیز به کار برد.
مثال:
کد:
Case Is >50

از کاما نیز میتوان برای OR کردن عبارات استفاده کرد.
مثال:
کد:
Case Is <> 0, 10 To 20
اگر مقدار مخالف صفر باشد یا بین 10 تا 20 باشد مجموعه دستورات انجام می شود.

موضع بحث بعدي : تابع IIF ( در مورد تابع هم بعدا صحبت ميكنيم )

---------------------
سينا
 

Mikhak

Active Member
تابع Iif:

موضوع : تابع IIF

اين تابع بعضي مواقع كا رمون رو راحت ميكنه و از شر then يا else راحتمون ميكنه واسه مواردي كاربرد داشته باشه كه فقط يك حالت رو بررسي كنيم
شكل كلي اين تابع :
کد:
Function IIf(Expression, TruePart, FalsePart)
اگر شرط درست باشد مقدار TruePart و در غیر این صورت مقدار FalsePart در نام تابع قرار داده می شود.
مثال:
کد:
Dim IsZero As Boolean
Dim Mark As Integer
IsZero = IIf(Mark = 20, True, False)
در این مثال اگر نمره برابر 20 باشد ارزش متغییر منطقی برابر درست و در غیر این صورت ارزش آن برابر نادرست می باشد.

موضوع بعدي : حلقه ها

--------------------
سينا
 

Mikhak

Active Member
حلقه های تکرار

موضوع : حلقه هاي تكرار
تو برنامه نويسي گاهي (شايدم زياد) پيش مياد كه بخوايم يه تيكه از كدمون رو تا وقتي كه ميخوايم تكرار كنيم
مثلا ساده ترين برنامه اي كه ميشه نوشت به اين صورته كه اگه بخوايم اعداد يك تا 10 رو چاپ كنيم در صورتي كه از ساختار حلقه استفاده نشه بايد يه الگوريتمي مثل پايين داشته باشه
1 رو چاپ كن
2 رو چاپ كن
3 رو چاپ كن
.
.
.
.
و الي آخر كه
اين برنامه حدودا ميشه 10 يا 12 سطر ولي اگه بخوايم از 1 تا 100 يا 1000 رو چاپ كنيم بايد برناممون 100 خط داشته باشه
كه اين 100 خط رو ميشه با يه حلقه تو 3 يا 4 خط خلاصه كرد

حلقه تکرار For:
از این حلقه برای تکرار عملیات خاصی به تعداد مشخص انجام می شود. يعني هموني كه بالا مثال زدم
شكل كلي :
کد:
For Counter = Start_Value To End_Value [Step Step_Count]
   بلاکی از یک یا چند دستور ویژوال بیسیک
Next  [Counter]

Counter شمارنده حلقه
Start_Value مقدار اولیه شمارنده
End_Value مقدار پایانی شمارنده
ابتدا متغییر counter برابر Start_Value قرار می گیرد و دستورات یک بار اجرا می شوند سپس counter به اندازه Step_Count افزایش یافته و دوباره دستورات اجرا می شوند و این عمل تا وقتی که به End_Value برسیم تکرار می شود.

نکته:
اگر Step_Count ذکر نشود مقدار پیش فرض آن یک می باشد.
می توان Counter جلوی Next را ننوشت ولی به دلیل ناخوانایی برنامه در حلقه های تودرتو این کار توصیه نمی شود.
مثال:
کد:
Dim i, Sum As Integer
For i = 0 To 100
    Sum = Sum + i
Next i
Text1.Text = Sum
در این مثال مجموع اعداد بین 0 تا 100 محاسبه شده و در آخر مقدار آن در جعبه متن قرار داده می شود.

کد:
Dim i, Sum As Integer
For i = 1 To 10 Step 2
    Sum = Sum + i
Next i
Text1.Text = Sum
در این مثال مجموع اعداد فرد بین 1 تا 10 محاسبه می شود.

کد:
Dim i As Single
Dim Counter As Integer
For i = 5 To -5 Step -0.5
    Counter = Counter + 1
Next
Text1.Text = Counter

در این مثال تعداد پیمایش اعداد بین 5 تا 5- با مقدار 0.5- شمارش می شود.
این مثال برای این آورده شده است که ببینید از اعداد منفی و اعشاری هم می توان در حلقه For استفاده کند.

با استفاده از دستور Exit For می توان قبل از موعد مقرر از حلقه خارج شد.
مثال:
کد:
For i = 10 To 100
    If (i Mod 7) = 0 Then Exit For
Next i
Text1.Text = "The first number is " & i
این مثال اولین عدد بخش پذیر بر 7 را بر می گرداند. هنگامی که عدد بر 7 بخش پذیر شود با دستور Exit For از حلقه بیرون می آییم. (راستش يادم نيست MOD رو گفتيم يا نه :neutral: ولي بهش ميرسم . Mod باقيمانده i رو بر 7 برميگردونه )

يه مثال ديگه (يه كم بزرگت :cool: ر) :
کد:
For i = 0 To 100
    If (i Mod 2) = 0 Then
        Even = Even + 1
    Else
        Odd = Odd + 1
    End If
Next i
Text1.Text = "Even numbers: " & Even & " Odd numbers: " & Odd
اين برنامه هم تعداد اعداد زوج و فرد رو از 1 تا 100 ميشمره و تو text1 چاپ ميكنه

موضوع بعدي : حلقه while و do
 
يه سوال

من يه فرم دارم با استال none در نتيجه تو تسك بار (نوار وظيفه به قول اديبان ) چيزي نداره و وقتي كه مينيمايزش ميكنم ميره كه ميره
چجوري ميتونم با همون استايل تگ مربوط به برنامه رو تو نوار وظيفه داشته باشم؟
اگه انجا محل مناسبي براي سوال نيست لطف كنين بگين تا جاشو عوض كنم :oops: :cry:
 
وضعیت
موضوع بسته شده است.

جدیدترین ارسال ها

بالا