رسم مربع

Private Sub Command1_Click()
For k = 0 To 3
If k Mod 2 = 0 Then
X1 = 0
Y1 = (k * 1) * 360
X2 = X1 + 960
Y2 = Y1 + 360
s = 960
For i = 1 To 4
Line (X1, Y1)-(X2, Y2), , B
X1 = X1 + 960
X2 = X2 + s
Next
Else
X1 = -480
Y1 = Y2
X2 = X1 + 960
Y2 = Y1 + 360
For i = 1 To 4
Line (X1, Y1)-(X2, Y2), , B
X1 = X1 + 960
X2 = X2 + 960
Next
End If
Next
Line (0, 0)-(960 * 4, 360 * 4), , B
End Sub

زمان سنج ديجيتالي

Dim h, m, s As Integer

Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Command3_Click()
h = 0: m = 0: s = 0
Label1.Caption = "00:00:00"
Timer1.Enabled = False
End Sub

Private Sub Form_Load()
h = 0: m = 0: s = 0
Timer1.Enabled = False
Timer1.Interval = 1000
Label1.Caption = "00:00:00"
End Sub

Private Sub Timer1_Timer()
s = s + 1
If s = 60 Then
s = 0: m = m + 1
End If
If m = 60 Then
m = 0: h = h + 1
End If
t = h & " : " & m & " ; " & s
Label1.Caption = Format(t, "hh:mm:ss")
End Sub

باز کردن رجیستری فقط با یک خط کد

در این برنامه شما فقط با یک خط می توانید برنامه ی run رو باز کنید با این تفاوت که temp رو باز نمی کنه

Private Sub Command1_Click()
Shell Text1.Text, vbNormalFocus
End Sub

در این برنامه شما نیاز به یک command و  textbox دارید

بعد از درست کردن برنامه کلمه ی regedit را تایپ کنید و رجستری رو باز کنید

ايجاد ساختارهاي داده اي در ويژوال بيسيک - بخش دوم

ايجاد ساختارهاي داده اي در ويژوال بيسيک - بخش دوم

ليست پيوندي

همانطور که گفته شد ليست پيوندي مجموعه اي از يکسري داده است که اين داده ها از نوع اشيا خودارجاعي هستند . ( هر شي خودارجاعي داراي يک متغير نوع variant براي نگهدار مقدار و يک اشاره گر به شي بعدي است ) . هر عضو ليست پيوندي را يک گره گويند . هر ليست پيوندي از طريق يک اشاره گر به اولين گره قابل دسترسي است . گره هاي بعدي از طريق قسمت لينک موجود در هر گره قابل دسترس هستند . همچنين لينک آخرين گره با Nothing تنظيم مي شود که انتهاي ليست را نشان مي دهد .
مزيت اصلي ليست هاي پيوندي نسبت به آرايه اينست که تعداد عناصر ليست پيوندي قابل تغيير است . بعبارت ديگر ليست هاي پيوندي بصورت ديناميک هستند و طول آنها قابل تغيير است اما سايز آرايه ثابت است . ( البته ويژوال بيسطک از آرايه هاي با سايز متغير نيز پشتيباني مي کند اما اين عمل تغيير سايز اتوماتيک نيست .)
عمل درج در ليست پيوندي ساده است و تنها بايستي دو اشاره گر تغيير يابد .
ليست هاي پيوندي را مي توان به سادگي با قراردادن هر عضو جديد در محل صحيح بصورت sortشده نگهداري کرد .
اعضاي ليست پيوندي در حافظه بصورت پيوسته ذخيره نمي شوند بنابراين نمي توان فوراً به هر عضو ليست دسترسي داشت ( بر خلاف آرايه ) .
براي ايجاد ليست پيوندي در ويژوال بيسيک نياز به سه کلاس است :

1 – کلاس ClistNode : کلاسي است که هر گره از ليست را توصيف مي کند :

private mNodeData as Variant
private mNextNode as ClistNode
public Property Get Data() as Variant
Data=mNodeData
End Property
Public Property Let Dta(ByVal vNewValue as Variant)x
MNodeData=vNewValue
End Property
Public Property Get NextNode() as ClistNode
Set NextNode=mNextNode
End Property
Public Property Let NextNode(Byval vNewValue as Variant)x
Set mNextNode=vNewValue
End Property



2 – کلاس Clist براي توصيف ليست پيوندي .
mFirstNode براي اشاره به اولين ClistNode و mLastNode براي اشاره به آخرين ClistNode در يک شي clist بکار می رود . زمانيکه يک Clsit ايجاد مي شود اين دو متغير با Nothing تنظيم مي شوند . روال Property Get Iterator يک شي ClistIterator برمي گرداند که مي توان از آن براي حرکت در بين اعضاي ليست استفاده کرد .

Private mFirstNode as ClistNode
Private mLastNode as ClistNode
Public Function IsEmpty() as boolean
IsEmpty=IIf(mFirstNode Is Nothing,True,False)x
End function
Public Sub InsertAtFront(insertItem as variant)x
Dim tempNode as ClistNode
If IsEmpty() then
Set mFirstNode=New ClistNode
Set mLastNode=mFirstNode
Else
Set tempNode=mFirstNode
Set mFirstNode=New ClistNode
MFirstNode.NextNode=tempNode
End if
MFirstNode.Data=insertItem
End sub
Public sub InsertAtBack(insertItem as Variant)x
Dim tempNode as ClistNode
If IsEmpty() then
Set mLastNode=New ClistNode
Set mFirstNode=mLastNode
Else
Set tempNode=mLastNode
Set mLastNode=New ClistNode
TempNode.NextNode=mLastNode
End if
MLastNode.Data=insertItem
End sub
Public function RemoveFromFront()x
Dim removeItem as Variant
If IsEmpty() then
Msgbox list is empty
RemoveFromFront=Null
Exit function
End if
RemoveItem=mFirstNode.Data
If mFirstNode Is mLastNode then
Set mFirstNode=Nothing
Set mLastNode=Nothing
Else
Set mFirstNode=mFirstNode.NextNode
End if
RemoveFromFront=removeItem
End function
Public Function RemoveFromBack()x
Dim removeItem as Variant
Dim current as ClistNode
If IsEmpty() then
Msgboc list is empty
RemovefromBack=Null
Exit function
End if
RemoveItem=mLastNode.Data
If mFirstNode Is mLastNode then
Set mFirstNode=nothing
Set mLastNode=Nothing
Else
Set current=mFirstNode
While Not current.NextNode Is mLastNode
Set current=current.NextNode
Wend
Set mLastNode=current
Current.NextNode=nothing
End if
RemoveFromBack=removeItem
End function
Public property Get Iterator() as variant
Dim iter as ClistIterator
Set iter=New ClistIterator
Iter.StartNode=mFirstNode
Set Iterator=iter
End property


عملکرد روال InsertAtFront :
a – فراخواني IsEmpty براي تعيين خالي بودن ليست
b – اگر ليست خالي باشد mFirstNode و mLastNode به New ClsitNode اشاره مي کنند .
c – اگر ليست خالي نباشد گره جديد توسط اشاره دادن tempNode به اولين گره ليست و سپس اشاره دادن mFirstNode به گره New ClsitNode و سپس اشاره دادن mFirstNode.NextNode به tempNode ساخته مي شود .
d – تنظيم mFirstNode.Data با مقدار مورد نظر
عملکرد روال InsertAtBack :
a – فراخواني IsEmpty براي تعيين خالي بودن ليست
b – اگر ليست خالي باشد mFirstNode و mLastNode به New ClsitNode اشاره مي کنند .
c – اگر ليست خالي نباشد گره جديد توسط اشاره دادن tempNode به آخرين گره ليست و سپس اشاره دادن mLastNode به گره New ClsitNode و سپس اشاره دادن tempNode.NextNode به mLastNode ساخته مي شود .
d – تنظيم mLastNode.Data با مقدار مورد نظر
عملکرد روال RemoveFromFront :
a – اگر ليست خالي باشد Null برگشت داده مي شود .
b – اگر ليست خالي نباشد داده mFirstNode به removeItem اختصاص داده مي شود .
c – اگر ليست فقط يک گره داشته باشد mFirstNode و mLastNode با Nothing مقدار دهي مي شوند و گره از ليست حذف مي شود .
d – اگر گره بيش از يک عضو داشته باشد mFirstNode برابر mFirstNode.NextNode مي شود .
e – مقدار removeItem برگشت داده مي شود .
عملکرد روال RemoveFromBack :
a – اگر ليست خالي باشد Null برگشت داده مي شود .
b – اگر ليست خالي نباشد داده mLastNode به removeItem اختصاص داه مي شود .
c – اگر ليست يک گره داشته باشد mFirstNode و mLastNode با Nothing مقدار دهي مي شوند و گره از ليست حذف مي شود .
d – اگر ليست بيش از يک گره داشته باشد متغير current برابر mFirstNode مي شود . سپس با استفاده از current روي گره هاي ليست حرکت مي کنيم تا به گره اي برسيم که به آخرين گره اشاره مي کند . سپس mLastNode را به گره اي که current به آن اشاره مي کند قرار مي دهيم و مقدار current.NextNode را Nothing مي کنيم تا بعنوان آخرين گزه ليست معرفي شود .
e – مقدار removeItem برگشت داده مي شود .

3 – کلاس ClistIterator : اين کلاس براي حرکت روي گره هاي ليست و دستکاري هر گره بکار مي رود . از حرکت کننده ها براي چاپ ليست و يا انجام دادن عملي بر روي هر عضو Clist مي توان استفاده کرد . اين کلاس داراي دو متغير از نوع ClistNode به نامهاي mBookmark و mFirstNode است . متغير mFirstNode به اولين گره در Clist اشاره مي کند و متغير mBookmark موقعيت فعلي حرکت کننده بر روي Clist را نشان مي دهد . روال Property Let StartNode اين دو متغير را مقدار دهي اوليه مي کند . تابع NextItem اگر مقدار mBookmark برابر Null باشد ، Null برگشت مي دهد و در غيراينصورت مقدار tempData را برابر mBookmark.Data و مقدار mBookmark را برابر mBookmark.NextNode قرار مي دهد . تابع HasMoreItems اگر ليست داراي چندين عضو باشد True برمي گرداند . روال ResetBookmark حرکت کننده را به ابتداي ليست منتقل مي کند .

Private mBookmark as ClistNode
Private mFirstNode as ClistNode
Public Property Let StartNode(Byval vNewValue as variant)x
Set mFirstNode=vNewValue
Set mBookmark=mFirstNode
End property
Public function NextItem()x
Dim tempData as varaint
If mBookmark Is nothing then
NextItem=Null
Else
TempData=mBookmark.Data
Set mBookmark=mBookmark.NextNode
NextItem=tempData
End if
End function
Public function HasMoreItems() as boolean
HasMoreItems=IIf(Not mBookmark Is nothing,True,False)x
End function
Public sub ResetmBookmark()x
MBookmark=mFirstNode
End sub

آموزش ویژوال بیسیک6

آموزش ویژوال بیسیک۶ - درس دوم

در قسمت وسط صفحه نمایش یک فرم قرار دارد که این فرم محیط کاری ما می باشد.
در سمت راست بالای صفحه پنجره Project Explorer مشاهده می شود. این پنجره تمام بخش های برنامه را به تفکیک به شما نشان می دهد و به راحتی با دو بار کلیک روی نام فرم یا ماجول یا کلاس و یا هر شیء دیگر می توانید به آن دسترسی پیدا کنید. در قسمت بالای Project Explorer چند دکمه وجود دارد:
دکمه View Code : اگر این دکمه را بفشارید به قسمت کد برنامه وارد می شوید. البته با دو بار کلیک بر روی فرم و یا هر شیء دیگر نیز می توانید به این جا وارد شوید. (قسمت کد بعدا توضیح داده می شود)
دکمه View Object : اگر در قسمت کد برنامه باشید با زدن این دکمه به راحتی به قسمت طراحی برنامه باز می گردید.
دکمه Toggle Folders : اگر این دکمه فشرده باشد اشیاء درون Project Explorer به صورت پوشه بندی از هم جدا می شوند و در غیر این صورت تمام آنها در یک ردیف قرار می گیرند. (می توانید امتحان کنید.)
می توانید بر روی Project Explorer کلیک راست کنید تا گزینه های مختلف آن را مشاهده کنید. یکی از این گزینه ها Add می باشد که می توانید در صورت لزوم اشیاء دیگری را به برنامه تان اضافه کنید.

در قسمت پایین پنجره Project Explorer پنجره Properties می باشد. این پنجره تمام خصوصیات هر شیء را که انتخاب شده باشد به دو صورت الفبایی و طبقه بندی شده نشان می دهد. هر کدام از این خصوصیات بعدا توضیح داده می شود.
در سمت راست پایین صفحه پنجره Form Layout قرار دارد. این پنجره محل قرار گیری فرم را در زمان اجرا روی مانیتور نشان می دهد. با استفاده از Drag & Drop می توانید محل فرم را تغییر دهید. همچنین با کلیک راست روی این پنجره در قسمت Startup Position چند حالت مختلف برای شما در نظر گرفته شده است.
اگر گزینه Manual انتخاب شده باشد فرم در همان قسمتی از صفحه قرار می گیرد که شما آن را با Drag & Drop مشخص کرده بودید.
اگر گزینه Center Owner انتخب شده باشد فرم در قسمت مرکز فرم والد قرار می گیرد. می توان در vb فرم ها را به والد و فرزند تبدیل کرد.
اگر گزینه Center Screen انتخاب شده باشد فرم در زمان اجرا در مرکز صفحه نمایش قرار می گیرد.
اگر گزینه Windows Default انتخاب شده باشد فرم در هر بار اجرا به صورت تصادفی در یک جایی از صفحه قرار می گیرد.

و سرانجام در سمت چپ صفحه پنجره Toolbox قرار دارد.(جعبه ابزار)
این پنجره حاوی تمام کنترل هایی است که در طراحی برنامه از آنها استفاده می کنیم. هر کدام از آنها و بعضی از خصوصیات مهم آنها به اختصار توضیح داده می شود.

کنترل PictureBox :
از این کنترل معمولا برای نمایش عکس روی فرم استفاده می شود.
خاصیت Name : این خاصیت که برای تمام اشیاء وجود دارد نامی است که با آن اسم به آن شی دسترسی پیدا می کنیم.
خاصیت Align : این خاصیت چگونگی قرار گیری شیء را روی فرم مشخص می کند.(بالا ، پایین ،...)
خاصیت Appearance : که وضعیت نمایش را به دو صورت سه بعدی و مسطح نشان می دهد.
خاصیت AutoSize : اگر این خاصیت برابر True باشد طول و عرض PictureBox به اندازه طول و عرض عکس داخل آن در می آید.
خاصیت Backcolor : رنگ پیش زمینه جعبه عکس را تعیین می کند.
خاصیت Height : ارتفاع شیء را مشخص می کند.
خاصیت Left : مقدار فاصله شیء از سمت چپ فرم می باشد.
خاصیت Picture : با استفاده از این خاصیت می توانید یک فایل عکس را در جعبه عکس قرار دهید.
خاصیت ToolTipText : هر متنی را که در این قسمت بنویسید هنگامی که در زمان اجرا ماوس را روی شیء حرکت دهید این متن به صورت pop-up ظاهر می شود.
خاصیت Top : مقدار فاصله شیء از بالای فرم می باشد.

خاصیت Visible : اگر این خاصیت برابر False باشد شیء در زمان اجرا نمایش داده نمی شود.
خاصیت Width : عرض شیء را مشخص می کند.


کنترل Label :
از این کنترل معمولا برای نمایش یک متن که قابل تغییر به وسیله کاربر نباشد استفاده می شود.
خاصیت BackStyle : دو نوع برای پیش زمینه برچسب دارد. Transparent (شفاف) و Opaque (مات)
خاصیت Caption : هر متنی که در این خاصیت نوشته شود درون برچسب نمایش می یابد.
خاصیت Font : می توانید نوع قلم (Font) مورد نظر خود را برای نوشتن متن انتخاب کنید.
خاصیت ForeColor : تعیین رنگ خط
خاصیت MouseIcon : می توانید برای کرسر ماوس خود از شکل های دلخواه خود استفاده کنید. در این صورت باید خاصیت MousePointer را به شماره 99-Custom تغییر دهید.

کنترل TextBox :
از این کنترل معمولا برای وارد کردن یک مقدار خاص به وسیله کاربر استفاده می شود.(مثلا وارد کردن اسم کاربر)
خاصیت Locked : اگر برابر True باشد کاربر مجاز به تغییر متن داخل جعبه در زمان اجرا نمی باشد.
خاصیت MaxLength : اگر مقدار آن صفر باشد هیچ محدودیتی در طول متن وجود ندارد ولی اگر مثلا مقدار آن 5 انتخاب شده باشد کاربر نمی تواند بیش از 5 کاراکتر را وارد کند.
خاصیت MultiLine : اگر برابر True باشد در زمان اجرا با زدن کلید Enter در جعبه ، مکان نما به خط بعد منتقل می شود ولی اگر False باشد تمام متن فقط در یک خط نوشته می شود.
خاصیت PasswordChar : اگر یک کاراکتر را در این خاصیت مشخص کنیم در زمان اجرا هر کاراکتری که به وسیله کاربر زده شود فقط همین کاراکتر نمایش می یابد.(از این خاصیت برای جعبه های ورود رمز (Password) استفاده می شود)
خاصیت ScrollBars : اگر متن ورودی بیشتر از طول و یا عرض جعبه متن باشد به Scroll Bars نیاز داریم. اگر مقدار آن صفر باشد غیر فعال ، یک : افقی ، دو : عمودی ، سه : هم افقی و هم عمودی.
خاصیت Text : از این خاصیت برای نوشتن متنی درون جعبه استفاده می شود.

کنترل Frame :
از این کنترل برای جدا کردن خواص مختلف در روی فرم استفاده می شود. می توانید اشیاء خود را دسته بندی کرده و هر گروه را روی قاب جداگانه ای قرار دهید.

کنترل CommandButton :
احتمالا که نه حتما این کنترل را در ویندوز دیده اید. برای انجام عملیات خاصی با نظر کاربر از این شیء استفاده می شود. هرگاه در زمان اجرا این شیء یا به وسیله ماوس یا به وسیله کیبورد فشرده شود دستورات درون آن اجرا می شوند.
خاصیت Cancel : اگر برابر True باشد دستورات این دکمه هنگامی که دکمه Esc از صفحه کلید فشرده شود نیز اجرا می شوند. فقط یکی از دکمه های روی فرم می توانند این خاصیت را به صورت فعال داشته باشند.
خاصیت Caption : متن روی دکمه را مشخص می کند.
خاصیت Default : اگر برابر True باشد این دکمه به عنوان دکمه پیش به حساب می آید و اگر حتی مکان نما هم در روی شیء دیگری باشد و کلید Enter فشرده شود دستورات درون این دکمه اجرا می شوند. در انجا هم فقط یکی از دکمه های روی فرم می توانند این خاصیت را به صورت فعال داشته باشند.
خاصیت Enabled : اگر برابر False باشد دکمه غیر فعال است (خاموش است) و نمی توان آن را فشرد.

کنترل CheckBox :
از این کنترل می توان برای انتخاب یک حالت از دو حالت ممکن استفاده کرد.این کنترل تداعی گر متغییر منطقی می باشد.
خاصیت Value : که وضعیت ابتدایی دکمه را مشخص می کند. صفر : Unchecked یا انتخاب نشده ، یک : Checked یا انتخاب شده و دو : Grayed یا خاکستری شده.
از Grayed زمانی استفاده می شود که انتخاب ما شرط دار است.مثلا در Setup ویندوز اگر گزینه ای را که انتخاب می کنید تمام زیر مجموعه های آن انتخاب نشده باشد آنگاه به صورت Grayed نمایش می یابد.

کنترل OptionButton :
از این کنترل برای انتخاب یک گزینه از بین چند گزینه استفاده می شود. اگر چند گروه از این دکمه ها را برای عملیات مختلف استفاده می کنید باید هر گروه را درون یک Frame جداگانه قرار دهید.
خاصیت Value : دو مقدار True برای انتخاب شده و False برای انتخاب نشده دارد.

کنترل ComboBox :
از این کنترل بیشتر برای انتخاب یک گزینه از میان چند گزینه استفاده می شود.
خاصیت Sorted : اگر برابر True باشد مقادیری که در Combo Box قرار می گیرند بر اساس حروف الفبا مرتب می شوند.
خاصیت Text : متنی است که در روی Combo Box نمایش می یابد.

کنترل ListBox :
از این کنترل برای نمایش لیستی از اشیاء استفاده می شود.
خاصیت List : برای پر کردن لیست در زمان طراحی می باشد.
خاصیت MultiSelect : صفر : نمی توانید بیش از یک گزینه را انتخاب کنید. یک : Simple به سادگی اگر بر روی هر گزینه کلیک کنید آن گزینه به جمع انتخاب شده ها افزوده می شود. دو : Extended شما می توانید با پایین نگه داشتن کلید Ctrl چندین انتخاب داشته باشید. همچنین با پایین نگه داشتن کلید Shift می توانید یک محدوده را انتخاب کنید.
خاصیت Style : اگر برابر 1 باشد برای هر گزینه یک CheckBox در لیست در نظر گرفته می شود.

کنترل های HScrollBar (افقی) و VScrollBar (عمودی) :
این کنترل ها استفاده های مختلفی دارند. مثلا اگر کنترل های روی فرم در طول و عرض تعیین شده جا نشوند می توان از این کنترل ها استفاده کرد.(البته احتیاج به نوشتن کد دارد)
خاصیت LargeChange و SmallChange : عددی را مشخص می کند که با هر بار تکان دادن مکان نما به آن اندازه تغییر می کند
خاصیت Min و Max : کمترین و بیشترین مقدار ScrllBar را تعیین می کند.

کنترل Timer :
Timer کنترلی است که کار های تکراری را در بازه زمانی دلخواه انجام می دهد.
خاصیت Enabled : اگر برابر True باشد Timer فعال است و دستورات داخل آن به صورت مکرر در بازه معلوم انجام می شود.
خاصیت Interval : بازه زمانی Timer را بر حسب میلی ثانیه تعیین می کند. مثلا اگر این خاصیت را برابر 1000 تنظیم کنید عملیات با بازه یک ثانیه انجام می شوند.

کنترل DriveListBox :
این کنترل تمامی درایو های موجود در روی سیستم را نشان می دهد.

کنترل DirListBox :
این کنترل برای نمایش پوشه های موجود در یک درایو می باشد.

کنترل FileListBox :
این کنترل برای نمایش فایل های موجود در یک درایو می باشد.
خاصیت Pattern : این خاصیت برای تعیین نام و پسوند فایل به کار می رود. مثلا *.* تمامی فایل ها با هر پسوندی را نشان می دهد.
خاصیت Normal,System,ReadOnly : این خواص تعیین کننده صفت فایل ها می باشد. به طوری که اگر هر کدام برابر True باشند فایل هایی با آن صفت نمایش می یابند.

کنترل Shape :
از این کنترل برای نمایش اشکال خاصی استفاده می شود.
خاصیت BorderStyle : نوع خط دور شکل را مشخص می کند.(خط تیره،نقطه و ...)
خاصیت BorderWidth : عددی است که پهنای خط دور را تعیین می کند.
خاصیت Shape : نوع شکل را مشخص می کند.(0:مستطیل ، 1: مربع ، 2: بیضی ، 3: دایره ، 4: مستطیل دور گرد ، 5: مربع دور گرد)

کنترل Line :
از این کنترل برای کشیدن خط به کار می رود.
خاصیت X1: مختصات x ابتدای خط
خاصیت X2: مختصات x انتهای خط
خاصیت Y1: مختصات y انتدای خط
خاصیت Y2: مختصات غ انتهای خط

کنترل Image :
از این کنترل نیز برای نمایش عکس استفاده می شود.
خاصیت Stretch : اگر برابر True باشد هنگامی که Image را Resize می کنید عکس نیز با توجه به آن تغییر اندازه می دهد.

کنترل Data :
این کنترل از امکانات جالب vb می باشد که دسترسی به بانک های اطلاعاتی را به سادگی امکان پذیر می کند.
خصوصیات این کنترل به عنوان یک مثال جامع بعدا توضیح داده می شود.

کنترل OlE(Object Linking and Embedding) :
استاندارد مایکروسافت که اجازه می دهد اشیاء در یک برنامه ساخته شوند و درون برنامه دیگر جاسازی شوند (استفاده از یک پیوند زنده). این جمله تعریفی بود که از OLE در دیکشنری Babylon آورده شده بود.
با استفاده از OLE می توانید اشیائی را از دیگر برنامه ها وارد برنامه خود کنید. خوب فعلا به این کار نداشته باشید چون فعلا لازم تون نمیشه ای از درس امروز تا بعد درسی که بهتون دادم حتما بخونید .

نسخه قابل حمل (Portable) نرم افزار Visual Basic 6

نسخه قابل حمل (portable)نرم افزار ویژوال بیسیک6(حجم باورنکردنی ۵ مگابایت)

اگر شما نیز برای برنامه نویسی تحت ویندوز از Visual Basic استفاده می کنید حتماً می دانید دیسک نرم افزار Visual Basic 6 حجمی معادل یک سی دی دارد و برای شروع برنامه نویسی و کار با ویژوال بیسیک حتما نیاز به نصب آن بر روی سیستم خود دارید که نصب آن نیز مدت زمان زیادی را می طلبد

اما اینبار قصد معرفی نسخه قابل حمل (Portable) ویژوال بیسیک را با حجم باورنکردنی ۵ مگابایت! را داریم که تنها کافی است آن را بر روی کول دیسک و یا دیگر حافظه های جانبی کپی کرده و در هر رایانه ، بدون نیاز به نصب نرم افزار شروع به برنامه نویسی با ویژوال بیسیک کنید و یا پروژه های قبلی خود را باز کرده و ویرایش کنید .

 >>دانلودنسخه visual basic portable 6

پسورد:www.shahvar.net




طريقه ساختن ماشين حساب

طريقه ساخت ماشین حساب با برنامه نویسی ویژوال بیسیک

دانلود مقاله

آموزش ويژول بيسيك6

آموزش ابتداي ويژوال بيسيك6

ابتدا برنامه ویژوال بیسیک را اجراء کنید، سپس پنجره New Project باز می شود در زبانه New بر روی Standard EXE کلیک کنید و سپس گزینه Open را انتخاب نمائید تا وارد محیط برنامه نویسی ویژوال بیسیک شوید.
تعجب نکنید!!! اگر کمی محیط را شلوغ می بینید ولی اصلاً نگران نباشید چرا که همانطور که قبلاً هم گفتم ویژوال بیسیک یک زبان برنامه نویسی شیء گرا و با محیط کاربری ساده است.
در سمت چپ این برنامه و در نوار ابزار General شما ابزارهایی را مشاهده می کنید از جمله ابزار های متن ، برچسب ، تصویر ، دکمه انتخاب ، دکمه ی رادیویی ، تایمر و … که معادل انگلیسی آن ها به شرح ذیل است:
TextBox , Label , PictureBox , Image , CommandButton , OptionButton ….
اگر شما روی هر کدام از موارد بالا دو بار کلیک کنید این اشیاء به روی فرم می آیند و شما می توانید اندازه ، متن ، رنگ ، فونت ، و… را از پنجره شمت راست با عنوان Properties تغییر دهید.
تمرین : (( این تمرین را با دقت انجام دهید ))

یک برچسب (Label) را به روی فرم بیاورید . به طور پیش فرض نام Label1 ظاهر می گردد. جهت تغییر نام این برچسب آن را انتخاب کنبد و در پنجره Priperties مشخصه Caption آن را تغییر دهید. ملاحظه می فرمائید که نام برچسب تغییر کرد اما توجه کنید که در این قسمت تا ۲۵۵ نویسه بیشتر نمی توانید بنویسید.
پس نحوه ی تغییر نام برچسب را یاد گرفتید ؛ سایر اشیاء نیز به همین ترتیب نام گذاری می شوند. مثلاً برای تغییر نام TextBox شما باید مشخصه Text آن را تغییر دهید.
چگونه یک برنامه را در هارد خود ذخیره کنیم؟
این کار بسیار ساده است ؛ برای این کار ( مانند سایر نرم افزار ها ) از منوی File بر روی Save Project کلیک کنید و آن را در مسیر دلخواه ذخیره کنید . ( البته از Save Form نیز می توانید استفاده کنید ولی در آینده که چند فرم ایجاد کنیم بهتر است آن ها را در یک مجموعه ی خاصی ذخیره کنیم که در این حالت Save Project پیشنهاد می شود).
پنجره ی Form Layout :
این پنجره در پائین صفحه و سمت راست قرار دارد و نحوه ی قرار گیری فرم پس از اجراء برنامه را تعیین می کند. می توانیید آن را تغییر دهید و به هر کجا که خواستید هدایت کنید.
پنجره ی پروژه :
این پنجره در بالای صفحه سمت راست قرار دارد. در این قسمت نیز تعداد فرم ها را شما می توانید ملاحظه کنید. همچنین می توانید وارد قسمت کد نویسی یا طراحی فرم شوید. (( توسط شکل های بالای این پنجره ))
نحوه ی اجراء یک برنامه در ویژوال بیسیک :
الف ) فشار دادن کلید F5
ب ) باز کردن منوی Run و انخاب گزینه ی Start
قسمت اول مجموعه ی آموزشی ویژوال بیسیک به پایان رسید. در قسمت بعدی شما را با انواع داده و معرفی چند دستور آشنا می کنم. 

برنامه ي تبديل تاريخ

  تبديل تاریخ هجری شمسی (ایرانی) به میلادی، هبرو و هجری قمری

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


دانلود:برنامه اجرائی (52 کیلوبایت)

دانلود:سورس برنامه به صورت زیپ شده (21 کیلوبایت)

برنامه تبديل تاريخ شمسي به تاريخ ميلادي

برنامه تبديل تاريخ شمسي به تاريخ ميلادي

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

دانلود:برنامه اجرائی (32 کیلوبایت)

دانلود:سورس برنامه به صورت زیپ شده (5 کیلوبایت)

خود ازمایی فصل 6 سوال 1-عدد کوچکتر به توان عدد بزرگتر

Private Sub cmdrun_Click()
n1 = Val(Text1.Text)
n2 = Val(Text2.Text)
Text3.Text = tavan(n1, n2)
End Sub


Public Function tavan(ByVal n1 As Integer, ByVal n2 As Integer)
If n1 < n2 Then
t = n1 ^ n2
Else
t = n2 ^ n1
End If
tavan = t
End Function

خود ازمایی فصل 6 سوال 2-فاکتوریل

Private Sub cmdfac_Click()
Text2.Text = fact(Val(Text1.Text))
End Sub

Public Function fact(number As Integer)
f = 1
For i = number To 1 Step -1
f = f * i
Next
fact = f
End Function

خود ازمایی فصل 6 سوال 3-نمایش مجموعه ارقام

Private Sub cmdrun_Click()
Call totalchar
End Sub

Public Sub totalchar()
Text2.Text = Len(Text1.Text)
For i = 1 To Len(Text1.Text)
Char = Mid(Text1.Text, i, 1)
Sum = Sum + Val(Char)
Next
Text3.Text = Sum
End Sub

خود ازمایی فصل 6 سوال4-دادن ریشه های یک عدد

Private Sub cmdrish_Click()
Call moadeleh
End Sub

Public Sub moadeleh()
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
delta = (b ^ 2) - (4 * a * c)
Select Case delta
Case Is = 0
X1 = -b / (2 * a)
Text1 = X1
Text2 = ""
Case Is > 0
X1 = (-b + Sqr(delta)) / (2 * a)
X2 = (-b - Sqr(delta)) / (2 * a)
Text4.Text = X1
Text5.Text = X2
Case Is < 0
Text4.Text = ""
Text5.Text = ""
End Select
End Sub

خود ازمایی فصل 6 سوال 5-دادن مقسوم علیه اعداد

Private Sub cmdmaghsom_Click()
Call maghsom
End Sub

Public Sub maghsom()
n = Val(Text1.Text)
For i = 1 To n / 2
If n Mod i = 0 Then
m = m & i & ","
End If
Next
Text2.Text = "{" & m & n & "}"
End Sub

خود ازمایی فصل 5 سوال 3-رسم 8 دایره ی تو در تو

Private Sub cmddraw_Click()
ScaleMode = vbPixels
For i = 1 To 8
r = r + 10
Circle (100, 100), r, RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next
End Sub

 

خود ازمایی فصل 5 سوال 1-رسم 70 نقطه در محل های مختلف

Private Sub cmddraw_Click()
Dim n As Integer
Me.ScaleMode = vbPixels
For i = 1 To 70
n = Rnd * 10
If n > 0 Then Me.DrawWidth = n
PSet (Rnd * 400, Rnd * 400), RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next
End Sub

Private Sub Form_Load()
Randomize
End Sub

خود ازمایی فصل 5  سوال 2-رسم خط با رنگها و مکانهای مختلف

Private Sub cmddraw_Click()
For i = 1 To 100
X1 = Rnd * Me.ScaleWidth
Y1 = Rnd * Me.ScaleHeight
X2 = Rnd * Me.ScaleWidth
Y2 = Rnd * Me.ScaleHeight
Line (X1, Y1)-(X2, Y2), RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next
End Sub

Private Sub Form_Load()
Randomize
End Sub

خود ازمایی فصل 5 سوال 4-رسم نقطه روی تصویر(grid)

Private Sub cmddraw_Click()
pic1.ScaleMode = vbPixels
pic1.DrawWidth = 2
For x = 0 To pic1.ScaleWidth Step 10
For y = 0 To pic1.ScaleHeight Step 10
pic1.PSet (x, y)
Next
Next
End Sub

خود ازمایی فصل 5 سوال 5-رسم خط با دادن مختصات

Private Sub cmddraw_Click()
ScaleMode = vbPixels
X1 = Val(Text1.Text)
Y1 = Val(Text2.Text)
x2 = Val(Text3.Text)
y2 = Val(Text4.Text)
Cls
Line (X1, Y1)-(x2, y2)
End Sub