آموزش ویژوال بیسیک توسط حمید احمدی

hamidahmadi

Active Member
پنجره فرعی ShowPrinter

با متد پنجره فرعی ShowPrinter کاربر میتواند نوع چاپگر ، تعداد کپی ها چاپ ، محدوده صفحات و دیگر گزینه های چاپگر را تنظیم کند
بلافاصله بعد از بستن این پنجره میتوان از مقادیر برگشتی آن نظیر Copies و FromPage و ToPage و غیره در برنامه استفاده کرد
 

hamidahmadi

Active Member
پنجره فرعی ShowHelp

این پنجره کار راهنمائی و کمک به کاربر را انجام می دهد در جائی که احتیاج می باشد به کاربر راهنمائی های لازم انجام شود و یا حتی فرم About برنامه که اکثر برنامه ها ویندوز از آن بهره می برند و اطلاعاتی در رابطه با نویسنده و ورژن برنامه و غیره به کاربر میدهند از این پنجره فرعی استفاده میکنند. از آنجا که در رابطه با نوشتن برنامه Help یک مقدار توضیح لازم است ما در آینده در رابطه با آن بحث خواهیم کرد.
 

hamidahmadi

Active Member
ماوس و رویدادهای آن

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

رویدادهای ماوس عبارتند از :

- حرکت ماوس
- کلیک
- دوکلیک
- راست کلیک
- عملیات کشیدن و رها کردن
 

hamidahmadi

Active Member
تنظیم کرسر ماوس

میتوان در برنامه هایم برای زیبائی آن کاری کنیم که هرگاه کاربر عملی با ماوس انجام داد برنامه ما در زمان انتظار آن با عوض کردن شکل کرسر ماوس عکس العملی انجام دهد و یا اینکه وقتی ماوس را از روی کنترلی حرکت می دهیم شکل کرسر ماوس عوض شود.
شکل کرسر ماوس تحت کنترل برنامه نویس می باشد برای عوض کردن شکل کرسر ماوس می بایست خاصیت Mouse Pointer آن کنترل را به جدول ذیل تصحیح کرد




کرسر ماوس از یک آیکون شانزده در شانزده با پسوند .ICO استفاده میکند که شما میتوانید آن را ساخته و سپس خاصیت MousePointer را به 99-Custom تنظیم کرده تا وقتیکه کرسر را مجددا" تغییر نداده اید این شکل به عنوان کرسر انجام وظیفه خواهد کرد
 
آخرین ویرایش:

hamidahmadi

Active Member
حرکات و کلیک های ماوس

رویدادهای ماوس به کنترل ها وابسته اند و تقریبا" تمام کنترل ها و حتی خود فرم دارای رویدادهای ماوس می باشند.

رویدادهای ماوس عبارتند از :




رویدادهای MouseUp ، MouseMove ، MouseDown چهار آرگومان ورودی میگیرند

1- intButton فشرده شدن دکمه های ماوس یک برای دکمه چپ ، دو برای دکمه راست و چهار برای هر دو دکمه یا دکمه وسط ماوس
2- intShift فشرده شدن دکمه های Shift ، Ctrl ، Alt همزمان با یکی از رویداهای ماوس
3- sngX مکان افقی کرسر ماوس در هنگام وقوع رویداد
4- sngY مکان عمودی کرسر ماوس در هنگام وقوع رویداد

اگر بخواهید مقدار برگشتی دکمه ای از ماوس که فشرده شده است را بیابید بهترین گزینه برای شما همین رویداد MouseDown می باشد
 

hamidahmadi

Active Member
عملیات کشیدن و رها کردن یا درگ کردن

وقتی کاربر یک کنترل را بر روی فرم از نقطه ای به نقطه دیگر می کشد برنامه می بایست از آن مطلع باشد عملیات درگ کردن به دو صورت امکان پذیر است
الف ) به صورت خودکار یا Automatic
در این صورت از طریق خواص کنترل خاصیت DragMode کنترل را به Automatic تغییر داده و سپس در روال رویداد Form_DragDrop نیمه دوم انتقال را انجام می دهیم.
برای درک بهتر مثال میزینم فرض کنید شما یک تصویر در روی فرم دارید به نام imgHamid و میخواهید این تصویر را هر کاربری بتواند هرکجای فرم که خواست بگذارد چکار میکنید ؟

1- خاصیت DragMode کنترل تصویر را بر روی Automatic تنظیم می کنید
2- به قسمت کد فرم و در رویداد DragDrop فرم رفته و کد ذیل را وارد می کنیم
کد:
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End Sub

برای انتقال کنترل از محل اولیه به محل جدید از متد Move استفاده شده است
حال برنامه را اجرا کنید و می بینید که میتوانید تصویر را حرکت دهید لازم به ذکر است که هنگام جابجائی تصویر ویژوال بیسیک فقط چارچوب آنها را نشان می دهد که این وضع با خاصیت DragIcon کنترل قابل اصلاح است.
دیگر اینکه ممکن است شما هنگام کشیدن تصویر مجبور شوید که از روی کنترلی دیگر عبور کنید که در آن موقع میتوانید از رویداد DragOver استفاده کنید




ب ) به صورت دستی یا Manual
در این صورت از طریق خواص کنترل خاصیت DragMode کنترل را به Manual تغییر داده و سپس این بارعلاوه بر استفاده از روال رویداد Form_DragDrop فرم از قسمت MauseDown کنترل مورد نظر نیز استفاده کرده و البته در قسمت کد کنترل از متد Drag
به کد ذیل توجه کنید

کد:
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End Sub

Private Sub imgHamid_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgHamid.Drag
End Sub



 

hamidahmadi

Active Member
جعبه های فهرست

برای آنکه از جعبه های فهرست استفاده شود معمولا" احتیاج به مقداری کدنویسی می باشد. چرا؟ چون آنها به مقداردهی اولیه احتیاج دارند واکثر آنها دارای چند مقداری می باشند.

جعبه های فهرست انواع های مختلفی دارند که به قرار ذیل می باشند

1- جعبه فهرست ساده
2- جعبه فهرست پائین کشیدنی
3- جعبه ترکیبی پائین کشیدنی
4- جعبه ترکیبی ساده
 

hamidahmadi

Active Member
جعبه فهرست ساده

جعبه فهرست ساده روشی برای انتخاب یک یا چند گزینه از یک مجموعه می باشد
برای اضافه کردن جعبه فهرست ساده کافیست از جعبه ابزار، کنترل ListBox را به فرم خود اضافه کنید.
اکثر خواص جعبه لیست درون پنجره Properties مقداردهی می شوند حتی اگر خاصیت List درون پنجره Properties را باز کنید یک فهرست خالی می بینید که در آن میتوانید مقادیر را وارد کنید اما معمولا" جعبه فهرست مقادیری که از طرف کاربر و یا منابع دیگرمی آیند ذخیره میکند.

برای اضافه کردن گزینه ها به جعبه فهرست از متد AddItem و برای حذف گزینه ها از متد RemoveItem استفاده می شود.

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

برای حذف گزینه ها از خاصیت ListIndex آنها استفاده می شود

تا زمانی که خاصیت Sorted به True تنظیم نشده باشد ویژوال بیسیک گزینه را به ترتیبی که کاربر وارد میکند اضافه میکند در غیر این صورت گزینه ها به صورت الفبا بارگذاری می شوند

هنگامی که کاربر یک گزینه را انتخاب و یا Select کرد درون خاصیت Text جعبه فهرست کپی میشود

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

نام لیست باکس در پنجره Properties به عنوان اولین گزینه خاصیت لیست قرار میگیرد که لازم است آن را درون پنجره Properties پاک کنید


برای روشن شدن قضیه به یک مثال توجه کنید

موارد لازم
یک عدد فرم
یک عدد لیست باکس
يك عدد تكست
یک عدد ليبل
چهار عدد دكمه
لطفا" خاصيت Style چهار دكمه را در پنجره Properties به Graphical تنظيم كنيد تا دكمه بتواند خاصيت BackColor بگيرد
کد:
[color=Green]
Private Sub Form_Load()

lstColor.AddItem "Red"
lstColor.AddItem "Green"
lstColor.AddItem "Blue"
lstColor.AddItem "Yellow"

End Sub

Private Sub lstColor_Click()
   
If lstColor.Selected(0) Then
   txtColor.ForeColor = vbRed
   txtColor.Text = lstColor.Text
   cmdRed.BackColor = vbRed
Else
   cmdRed.BackColor = &H8000000F
End If
   
If lstColor.Selected(1) Then
   txtColor.ForeColor = vbGreen
   txtColor.Text = lstColor.Text
   cmdGreen.BackColor = vbGreen
Else
   cmdGreen.BackColor = &H8000000F
End If
 
If lstColor.Selected(2) Then
   txtColor.ForeColor = vbBlue
   txtColor.Text = lstColor.Text
   cmdBlue.BackColor = vbBlue
Else
   cmdBlue.BackColor = &H8000000F
End If
   
If lstColor.Selected(3) Then
   txtColor.ForeColor = vbYellow
   txtColor.Text = lstColor.Text
   cmdYellow.BackColor = vbYellow
Else
   cmdYellow.BackColor = &H8000000F
End If

End Sub
[/color]

لازم به ذكر است براي اينكه يك ليست باكس خاصيت چند مقداري بگيرد مي بايست خاصيت MultiSelect ليست باكس يا به Simple براي انتخاب چند گزينه غير مجاور با دكمه Ctrl بر روي كيبرد و يا به Extended براي انتخاب چند گزينه پشت سر هم با دكمه Shift بر روي كيبرد تنظيم شود.

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

متد Clear جعبه فهرست بلافاصله همه گزينه هاي درون جعبه فهرست را پاك مي كند

کد:
[color=Green]
lstColors.Clear
[/color]



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

hamidahmadi

Active Member
کنترل جعبه ترکیبی

کنترل جعبه ترکیبی که در جعبه ابزار به نام Combo box مشخص می شود سه نوع مختلف دارد

جعبه لیست ترکیبی بازشو
جعبه ترکیبی ساده
جعبه ترکیبی بازشو

در جعبه ابزار فقط یک ابزار به نام جعبه ترکیبی یا Combo box وجود دارد که با استفاده از خاصیت استیل Style آنها این سه کنترل از یکدیگر متمایز خواهند شد

جعبه لیست ترکیبی بازشو برخلاف جعبه لیست ساده که همواره به همان اندازه ای است که تنظیم شده دیده خواهد شد تا زمانی که کاربر آن را باز نکند بصورت بسته باقی خواهد ماند. از این کنترل برای زمانی که بر روی فرم خود جا کم دارید استفاده کنید. برای ایجاد جعبه لیست ترکیبی بازشو خاصیت Style رابه 0-Dropdown Combo تنظیم کنید

جعبه ترکیبی ساده عبارتست از یک جعبه لیست ساده و یک جعبه متن برای وارد کردن آیتم های جدید که کاربر براحتی قادر خواهد بود آیتم های مورد نظرش را به لیست اضافه کند برای ایجاد جعبه ترکیبی ساده خاصیت Style رابه 1-Simple Combo تنظیم کنید

جعبه ترکیبی بازشو همان جعبه ترکیبی ساده است با این تفاوت که لیست آن تا زمانی که کاربر نخواهد باز نمی شود برای ایجاد جعبه ترکیبی بازشو خاصیت Style رابه Dropdown List تنظیم کنید

لازم به ذکر است که تمام خواص جعبه لیست ساده در مورد جعبه های ترکیبی نیز اجرا می شود و تنها تفاوت آنها شکل ظاهری آنها می باشد
 

hamidahmadi

Active Member
کنترل تایمر

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

کنترل تایمر تنها یک رویداد دارد و آن هم رویداد Timer می باشد که مهمترین خاصیت این کنترل Interval می باشد که فاصله زمانی رویدادهای تایمر را مشخص می کند . پس از گذشت مدت زمان تنظیم شده در این خاصیت کد رویداد Timer اجرا خواهد شد.

خواص کنترل تایمر بسیار محدود و فقط از شش خاصیت پشتیبانی میکند

Top مکان کنترل تایمر را مشخص می کند
Left مکان کنترل تایمر را مشخص می کند
Enabled فعال بودن کنترل تایمر را مشخص می کند
Tag اطلاعات اضافی درباره کنترل تایمر را مشخص می کند
Index ایندکس کنترل تایمر در صورت عضو یک آرایه بودن را مشخص می کند
Interval فاصله زمانی روی دادن رویداد تایمر را مشخص می کند

از آنجا که خاصیت Interval یک عدد صحیح است بزرگترین مقداری که می تواند بگیرد 65535 است و این یعنی حداکثر 65 ثانیه که مهمترین نقطه ضعف تایمر محسوب می شود ولی میتوان به این نکته توجه داشت که در روال رویداد تایمر میتوان کاری کرد که فقط بعد از سپری شدن چندین دوره زمانی عملیاتی صورت بگیرد.

از آنجا که کنترل تایمر پس از اجرا بر روی فرم دیده نمی شود میتوان آن را در هرکجای فرم قرار داد

برای بهتر آشنا شدن شما با کنترل تایمر مثالی زده می شود

مواد لازم برای پروژه جدید

1- یک فرم به نام frmTimer
2- دو عدد جعبه متن به نامهای txtTimer1 و txtTimer2
3- دو عدد تایمر به نامهای tmrTimer1 و tmrTimer2
4- دو عدد برچسب به نامهای lblTimer1 و lblTimer2

در مورد جعبه متن ها خاصیت Text هر دو را به عدد 1 تنظیم کنید و Alignment را در هر دو مورد به Center تنظیم کنید
در مورد برچسب ها خاصیت Caption اولی را به کند و دومی را به تند تنظیم کنید و Alignment را در هر دو مورد به Center تنظیم کنید
در مورد تایمرها خاصیت Interval اولی را به عدد 1000 یعنی یک ثانیه و دومی را به 500 یعنی نیم ثانیه تنظیم کنید

کد ذیل را در روال رویداد تایمر یک بنویسید

کد:
[color=blue]
Private Sub tmrTimer1_Timer()
txtTimer1.Text = txtTimer1.Text + 1
End Sub
[/color]

کد ذیل را نیز در روال رویداد تایمر دو بنویسید


کد:
[color=green]
Private Sub tmrTimer2_Timer()
txtTimer2.Text = txtTimer2.Text + 1
End Sub
[/color]

حال برنامه را اجرا کنید و می بینید که عدد جعبه متن اول هر یک ثانیه و عدد جعبه متن دوم هر نیم ثانیه یکی اضافه خواهد شد



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

hamidahmadi

Active Member
کار با آرایه ها

در هنگام توضیح در مورد کنترل های لیست با مفهوم اندیس آشنا شدید. اندیس آیتم های لیست با عدد صفر شروع شده و به ترتیب اعداد بالا میرود.
لیست یک نام دارد اما می تواند چندین مقدار داشته باشد. برای تمایز مقدارهای لیست از اندیس آنها استفاده می شود.

آرایه لیستی است از متغیرهای اندیس دار.
هر متغیر آرایه با اندیس آن شناخته می شود.

توجه به این نکات در مورد آرایه ها لازم می باشد

1- نوع داده متغیرهای یک آرایه باید یکسان باشد.
2- اندیس آرایه در داخل پرانتز و جلوی نام آرایه می آید
3- به کمک اندیس آرایه می توان بدون هیچ ترتیبی به عناصر آرایه دسترسی پیدا کرد

در ویژوال بیسیک اندیس یک آرایه از صفر شروع می شود اما برنامه نویسان معمولا" دوست دارند آرایه ها از یک شروع شوند به همین خاطر در ویژوال بیسیک برای هماهنگ شدن با خواسته برنامه نویسان دستوری وجود دارد به نام Option Base 1 که در قسمت تعاریف مدول نوشته می شود و با اینکار آرایه ها از یک شروع می شوند.

درست مانند متغیرها آرایه ها هم می بایست قبل از استفاده تعریف شوند. نامگذاری آرایه ها تابع همان قواعد نامگذاری متغیرهاست با این تفاوت که در آرایه ها اندیس نیز تعریف می شود.

محدوده دید آرایه ها نیز مانند محدوده دید متغیرها می باشد.

شکل کلی دستور تعریف یک آرایه چنین می باشد

کد:
[color=blue]
Public arName(intSub) [As dataType] [,arName(intsub) [As dataType]]…
Dim arName(intSub) [As dataType] [,arName(intsub) [As dataType]]…
[/color]

در کد فوق پیشوند ar نشان دهنده نام یک آرایه می باشد و intSub اندیس آرایه می باشد.

کد:
[color=green]
Dim intCounts(5) As Integer
 [/color]

در کد بالا اگر دستور Option Base 1 در قسمت تعاریف مدول تعریف شده باشد دارای پنج عضو یا اندیس و در غیر این صورت این آرایه دارای شش عضو یا اندیس می باشد
 
آخرین ویرایش:

hamidahmadi

Active Member
انتخاب چند گزینه ای در جعبه فهرستها

برای آنکه یک جعبه فهرست بتواند چند انتخاب را قبول کند باید خاصیت MultiSelect آن را بدرستی تنظیم کنید. اگر این خاصیت با مقدار 1-Simple تنظیم شود کاربر می تواند چند گزینه را انتخاب کند و اگر این خاصیت با 2-Extended تنظیم شود کاربر می تواند چند گزینه پشت سرهم را با فشردن کلید Shift کیبرد انتخاب و یا با گرفتن دکمه Ctrl چند گزینه غیر مجاور را انتخاب کند.
 

hamidahmadi

Active Member
یک پروژه

برای درک بهتر در مورد جعبه لیست ها به این پروژه توجه فرمائید.

مواد لازم
یک فرم به نام frmListBox
یک جعبه لیست به نام lstList
یک عدد برچسب به نام lbllist و سپس وقتی آن را بر روی فرم گذاشتید و اندازه ، فونت و دیگر موارد آن را تنظیم کردید بر روی آن کلیک راست کرده و Copy را انتخاب می کنید و سپس بر روی Paste کلیک میکنید با اینکار یک MsgBox ظاهر می شود و میپرسد :

?You already have a control named "lblList". Do you want to create a control array

و شما می بایست در جواب آن Yes را بزنید بدین طریق یک آرایه از کنترل ها می سازید که اگر در پنجره Properties در قسمت بالاتر از Name دقت کنید نام اولین کنترل برچسب ما را (0)lblList می بینید و اگر باز دقت کنید دومین برچسب ما که در اصل Paste شده برچسب اول است (1) lblList می بینید. بدین ترتیب برچسب سوم و چهارم را نیز بسازید.

یک عدد جعبه متن به نام txtList و سپس مانند مرحله برچسب یک آرایه نیز از تکست باکس می سازید که کلا" چهار عدد تکست باکس می باشد. و این نکته که در متن Text آن عبارت Not Selected را بنویسید

حال ظاهر برنامه را مانند شکل ذیل طراحی می کنید.

قبل از هرچیز در مورد ListBox مقدار خاصیت List را از پنجره Properties پاک کرده وخاصیت MultiSelect کنترل ListBox را به Extended-2 تنظیم نمایئد و نیز این موارد را در Form_Load فرم بنویسید

کد:
[color=blue]
Private Sub Form_Load()

lstList.AddItem "Tehran"
lstList.AddItem "Tabriz"
lstList.AddItem "Shiraz"
lstList.AddItem "Esfehan"

End Sub
[/color]

اگر هم اینک برنامه را اجرا کنید آیتم های تهران ، تبریز ، شیراز و اصفهان را در جعبه لیست خواهید دید

حال در قسمت کلیک جعبه لیست بقیه کد را مانند شکل بنویسید

کد:
[color=blue]
Private Sub lstList_Click()

If lstList.Selected(0) Then
   txtList(0).Text = "Selected"
Else
   txtList(0).Text = "Not Selected"
End If

If lstList.Selected(1) Then
   txtList(1).Text = "Selected"
Else
   txtList(1).Text = "Not Selected"
End If

If lstList.Selected(2) Then
   txtList(2).Text = "Selected"
Else
   txtList(2).Text = "Not Selected"
End If

If lstList.Selected(3) Then
   txtList(3).Text = "Selected"
Else
   txtList(3).Text = "Not Selected"
End If

End Sub
[/color]

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



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

hamidahmadi

Active Member
کار با فرمها

تاکنون یاد گرفته اید که چگونه ظاهر و رفتار یک فرم را با استفاده از خواص آن کنترل کنید. دیدید که چگونه می توان در رویداد ()Form_Load سایر کنترل های برنامه را آماده سازی کرد.
در اینحال روال () Form_Unload مکانیست برای پاکسازی حافظه قبل از بیرون رفتن فرم از حافظه.
در برنامه هائی که با داده ها سروکار دارند ، این رویداد یک نقطه کلیدی در جلوگیری از صدمه دیدن اتفاقی داده هاست. اگر شما به عنوان یک برنامه نویس فراموش کنید یک فرم نامرئی را از حافظه خارج کنید این فرم حتی بعد از پایان یافتن برنامه در حافظه باقی می ماند بنابراین می بایست به عنوان یک برنامه نویس تمام فرمها را در این قسمت از حافظه خارج کنید.
در مورد مکان ظاهر شدن فرم ها هنگام اجرای برنامه علاوه بر اینکه در قسمت Properties فرم می توان توسط خاصیت StartUpPosition مکان فرم را مشخص نمود ولی با این حال به علت اینکه یک برنامه نویس از قبل نوع وضوع صفحه نمایش کامپیوتری که برنامه می بایست در آن اجرا شود را نمیداند ترجیح می دهد توسط کد ، فرم را در وسط صفحه با استفاده از شییء Screen قرار دهد
کد:
[color=blue]
Private Sub Form_Load()

Form1.Left = (Screen.Width - Form1.Width) / 2
Form1.Top = (Screen.Height - Form1.Height) / 2

End Sub
[/color]

با این کد فرم دقیقا" در وسط صفحه نمایش قرار می گیرد.

در مورد دیگر رویدادهای مهم فرم میتوان از این سه رویداد نام برد

1- Activate هرگاه فرم به هردلیلی مثلا" کلیک شدن کاربر روی آن فعال شود ، این رویداد روی می دهد.
2- Deactivate هرگاه فرم فوکوس را از دست بدهد ، این رویداد روی می دهد.
3- Resize هرگاه تغییری در خواص طول و عرض فرم ایجاد شود ، این رویداد بوقوع می پیوندد.
 
آخرین ویرایش:

hamidahmadi

Active Member
نوشتن مستقیم روی فرم

برای قرار دادن متن روی فرم ها غیر از استفاده از برچسب یا جعبه متن راه دیگری هم وجود دارد که آن متد Print است. این متد متن را مستقیما" روی فرم می نویسد.
متد Print علاوه بر فرمها بر روی چاپگرها و جعبه تصویر و شییء دیباگ هم کار می کند
از آنجا که Print یک متد است پس خواص هم ندارد و می بایست با نوشتن کد آن را کنترل کرد

به این مثال توجه کنید :

کد:
[color=Blue]
Private Sub Form_Click()

   Print "Hamid"
   Print "Ahmadi"

End Sub 
[/color]

حال برنامه را اجرا کنید و چندین بار برروی فرم کلیک کنید چیزی مانند شکل زیر خواهید دید.



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

hamidahmadi

Active Member
فرمت کردن دستور پرینت

برای فرمت کردن خروجی متد Print از توابع ()Spc و یا ()Tap استفاده می شود. این دو تابع بین اطلاعات چاپ شده فاصله می اندازند.

کد:
[color=green]
Private Sub Command1_Click()

Form1.Print "hamid", Spc(10); "Ahmadi"
Form1.Print "hamid"; Tab(10); "Ahmadi"

End Sub
[/color]

در مثال بالا تابع (10)Spc قبل از چاپ آیتم بعدی 10 فاصله خالی رها می کند ولی تابع (10)Tab چاپ را از ستونی که در تابع ()Tab مشخص شده ادامه خواهد داد

به شکل ذیل توجه کنید




در شکل میبینید که از علامت ; یا سیمیکلون بین اطلاعات خود استفاده کرده ایم و این بدان معناست که به ویژوال بیسیک میگوئیم اطلاعت بعدی را درست بعد از نقطه پایانی دستور ما ادامه بده و اگر سیمیکلون را در آخر خط بگذاریم دستور Print بعدی دقیقا" از نقطه پایانی دستور قبل ادامه خواهد یافت و اگر سیمیکلون در پایان یک دستور Print وجود نداشته باشد دستور Print بعدی از ابتدای خط بعد شروع می شود.
اگر از متد Print بدون هیچ آرگومانی استفاده شود یک خط خالی رها خواهد شد.

برای روشن شدن قضیه به شکل ذیل توجه فرمائید



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

hamidahmadi

Active Member
تعیین مکان متد پرینت

تعیین مکان متد پرینت
اگر بخواهید مکان دقیق چاپ روی فرم را مشخص کنید از دو خاصیت CurrentX و CurrentY استفاده می کنیم. این دو خاصیت در واقع مکان کرسر متن فرم را کنترل می کنند.
خاصیت ScaleMode این دو خاصیت را تحت تاثیر قرار میدهد و می تواند مقادیر متفاوتی داشته باشد

به شکل ذیل توجه کنید




متداولترین سیستم مختصات هنگام کار با متن حالت کاراکتر ( ScaleMode = 4 ) می باشد. در این حالت به تعداد کاراکترها یی که در خواص CurrentX و CurrentY تنظیم شود فاصله انداخته می شود.
مبدا مختصات خاصیت ScaleMode منتهی الیه چپ و بالای فرم است یعنی مختصات این نقطه همیشه (0 , 0) می باشد

به شکل ذیل توجه فرمائید




در شکل بالا می بینید متن Ahmadi در ستون صفر و ردیف 6 و متن Hamid در ستون 20 و ردیف 6 قرار گرفته اند
 
آخرین ویرایش:

hamidahmadi

Active Member
ایجاد خواص جدید برای فرمها

فرم ها دارای خواص متعددی هستند اما شاید شما نیز به عنوان یک برنامه نویس دوست داشته باشید خواص جدیدی برای یک فرم تعریف کنید مثلا" شاید بخواهید برای قسمت پائین فرم یک خاصیت خلق کنید به نام BottomTitle که کار این خاصیت این باشد که یک متن را در پائین یک فرم بنویسد.

بیائید برای روشن شدن قضیه یک مثال بزنیم :

مواد لازم :
فقط یک فرم به نام frmTitle
پنجره کد را باز میکنیم و در قسمت تعاریف مدول فرم یک متغیر عمومی تعریف می کنیم
کد:
[color=magenta] Dim strTitle As String [/color]
اما چرا عمومی ؟ برای اینکه همه کنترلها عمومی هستند و خاصیت محلی معنا ندارد
برای خلق یک خاصیت می بایست با دو روال به نام های Property Get و Property let کار کرد.

هرگاه برنامه مقدار یک خاصیت را می خواند ویژوال بیسیک روال Property Get آن خاصیت را اجرا می کند
پس در پنجره کد می نویسیم :
کد:
[color=blue]
Public Property Get BottomTitle()
    BottomTitle = strTitle
End Property
[/color]
و در روال Property let که این روال برای تغییر دادن خاصیت BottomTitle است فقط مقدار متغیر StrTitle را ست می کند

کد:
[color=blue]
Public Property Let BottomTitle(strTitleEntered)
    strTitle = strTitleEntered
    frmTitle.CurrentY = (frmTitle.Height - 800)
    
If frmTitle.CurrentY < 600 Then
    Exit Property
Else
    Print strTitle
End If
End PropertyEnd Property
[/color]

حال مثلا" در قسمت ()Private Sub Form_Activate این کد را بنویسید

کد:
[color=blue]
Private Sub Form_Activate()
    frmTitle.BottomTitle = "Hamid Ahmadi"
End Sub
[/color]
می بینید که به محض زدن نقطه frmTitle در کد منوی کشوئی پائین آمده وخاصیت BottomTitle دیده می شود
حال برنامه را اجرا کنید می بینید که متن حمید احمدی پائین فرم دیده می شود



 

hanie9988

Member
مهاجرت به مجارستان یک گزینه ممکن است، اما نیازمند آگاهی کامل از مقررات و الزامات مهاجرتی مرتبط با این کشور است. در ادامه، چند نکته کلی در مورد مهاجرت به مجارستان آورده شده است:

۱. **انواع ویزا:**
– ویزای شینگن: اگر شما به مجارستان می‌خواهید سفر کنید، ممکن است به ویزای شینگن نیاز داشته باشید که به شما اجازه ورود به کشورهای منطقه شینگن را می‌دهد.

– ویزای کار: اگر قصد کار در مجارستان دارید، باید ویزای کار مرتبط با شغل موردنظرتان را اخذ کنید.

– اقامت دائم: در صورت تمایل به اقامت دائم در مجارستان، باید شرایط مشخصی را ارضا کنید.

۲. **تحصیلات:**
– اگر می‌خواهید دانشگاه‌های تحصیل د رمجارستان کنید، باید مراحل ثبت‌نام و اخذ ویزای تحصیلی را دنبال کنید.

۳. **زبان مجاری:**
– آشنایی با زبان مجاری می‌تواند در زندگی روزمره و تعامل با محیط محلی کمک کند.

۴. **ترتیبات مالی:**
– اثبات توانایی مالی برای زندگی در مجارستان از جمله مواردی است که ممکن است لازم باشد.

۵. **کار و شغل:**
– در صورتی که به دنبال کار هستید، باید مجوز کار معتبر دریافت کنید.

۶. **مشاوره حقوقی و مهاجرتی:**
– مشاوره از مشاوران حقوقی یا مشاوران مهاجرتی می‌تواند در تسریع و سهولت در فرآیند مهاجرت به مجارستان کمک کند.

۷. **پناهندگی:**
– اگر به دنبال پناهندگی هستید، باید با مقررات مربوطه آشنا شده و درخواست خود را مطالبه کنید.

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

۱. **انواع ویزا:**
– ویزای شینگن: اگر شما به مجارستان می‌خواهید سفر کنید، ممکن است به ویزای شینگن نیاز داشته باشید که به شما اجازه ورود به کشورهای منطقه شینگن را می‌دهد.

– ویزای کار: اگر قصد کار در مجارستان دارید، باید ویزای کار مرتبط با شغل موردنظرتان را اخذ کنید.

– اقامت دائم: در صورت تمایل به اقامت دائم در مجارستان، باید شرایط مشخصی را ارضا کنید.

۲. **تحصیلات:**
– اگر می‌خواهید دانشگاه‌های تحصیل د رمجارستان کنید، باید مراحل ثبت‌نام و اخذ ویزای تحصیلی را دنبال کنید.

۳. **زبان مجاری:**
– آشنایی با زبان مجاری می‌تواند در زندگی روزمره و تعامل با محیط محلی کمک کند.

۴. **ترتیبات مالی:**
– اثبات توانایی مالی برای زندگی در مجارستان از جمله مواردی است که ممکن است لازم باشد.

۵. **کار و شغل:**
– در صورتی که به دنبال کار هستید، باید مجوز کار معتبر دریافت کنید.

۶. **مشاوره حقوقی و مهاجرتی:**
– مشاوره از مشاوران حقوقی یا مشاوران مهاجرتی می‌تواند در تسریع و سهولت در فرآیند مهاجرت به مجارستان کمک کند.

۷. **پناهندگی:**
– اگر به دنبال پناهندگی هستید، باید با مقررات مربوطه آشنا شده و درخواست خود را مطالبه کنید.

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

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

بالا