جستجو | جستجو در مطالب اموزش ویژول بیسیک

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

FloatingBlog Change Font
 
     
كي مي خواد مشخصات سي پي يو خودش را ببيند | عمومي

اين برنامه يكي از قدرتمند ترين نرم افزار شناسايي سي پي يو شماست ساده و پر محتوا كه اين برنامه فارسيه

                                                    دانلود



برچسبها : خواد - مشخصات - خودش - ببیند
نوشته شده توسط حسين در 24 دي 1387 ساعت 09:32
چگونگی ایجاد منو برای کلیک راست | عمومي
 

خوب ابتدا توسط Menu Editor منو و تعدادی SubMenu (زیر منو) ایجاد کرده و خاصیت Visible منو (فقط منو) را غیر فعال میکنیم

حالا فرض میکنیم که می خواهیم منو را برای هنگامیکه بر روی فرم راست کلیک کردیم ظاهر کنیم , کد زیر را در Event (ٍرویداد) MouseDown می نویسیم :

 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   

    If Button = 2
Then
        PopupMenu MnuFile
    End
If
    
End Sub

حالا برنامه را Run کنید و بر روی فرم راست کلیک کنید می بینید که فرم ظاهر میشود

خوب شما می توانید منوی کلیک راست رو برای هر عنصری که رویداد MouseDown رو داره پیاده سازی کنید .

                                                 نظر يادتون نره!!!!!!!!!!!



برچسبها : چگونگی - ایجاد - منو - برای - کلیک - راست
نوشته شده توسط حسين در 14 دي 1387 ساعت 09:32
محرم امد | عمومي


برچسبها : محرم - امد
نوشته شده توسط حسين در 9 دي 1387 ساعت 14:56
پروژه | عمومي

به نام خدا
برنامه اي بنويسيد که يک يوز و يک پسورد از ما بخواهد و اگر رمز را 3بار اشتباه وارد کرديم خودکار برنامه بسته بشه و اگردرست وارد شد فرم 2 را نمايش بده و اگر رمز اشتباه وارد شد يک پيغام نمايش بده که رمز اشتباه است و ايا مي خواهيد ادامه يدهيد يا خير اگر بله را زديم ادامه بده و در غير اين صورت خارج بشه.
براي اين کار 2 تا دکمه لازمه و دوتا جعبه متن
و کد زير رو تو برنامه مي نويسيم
Private Sub Command1_Click()
Static k As Integer
If Text1 = "hosein" And Text2 = "mos" Then
Form2.Show
Else
a = MsgBox("رمز اشتباه است ايا مي خواهيد ادامه بدهيد", vbYesNo, "رمز اشتباه")
If a = 7 Then End
If a = 6 Then
k = k + 1
End If
If k = 3 Then End
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End If
End Sub

Private Sub Command2_Click()
a = MsgBox("ايا مي خواهيد خارج شويد", vbYesNo, "خروج")
If a = 6 Then End
If a = 7 Then
End If
End Sub

پيروز و سر بلند باشيد رمز=mos نام=hosein



برچسبها : پروژه
نوشته شده توسط حسين در 5 دي 1387 ساعت 09:53
مشکلات دوستان در وی بی |

سلام دوستان معذرت می خوام که خیلی دیر آپدیت کردم

امروز می خوام چند مطلب جالب برای عزیزان بذارم که اکثرا بچه های وی بی با این موارد مشکل دارند

1- برنامه ماشین حساب ما کار نمی کند !

ابتدا 2 تا کادر متن روی و یک دکمه روی فرم بکشید و کدهای زیر را کپی کنید

Private Sub Command1_Click()

MsgBox Text1.Text + Text2.Text

End Sub

Private Sub Form_Load()

Text1.Text = ""

Text2 = ""

Command1.Caption = "zarb"

Me.Caption = "http://hoseinmos.blogpars.com/"

End Sub

حالا در کادر های متن دو عدد را وارد کنید و دکمه را بزنید چه اتفاقی افتاد؟

خب برنامه ما به جای این که دو عدد را با هم جمع کند آن ها را کنار هم قرار داد،اما مشکل کار کجا بود؟

عجله نکنید بهتون می گم

به دلیل این که ویژوال بیسیک نوشته های یک کادر متن را به عنوان یک رشته فرض میکند آن دو عدد را کنار هم قرار می دهد و با هم جمع نمی کند برای درست شدن این مساله باید هر دو رشته (یا یکی از آن ها) را تبدیل به متغری از نوع عدد کرد به صورت زیر:

Msgbox clng(text1.text)+text2.text

می بینیم که مشکل حل شد.

 

2-ساختن فایل در وی بی

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

خب اگه دوشت دارین با ما همراه بشین...

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

Open "c:s.txt" for binary as 1

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

با این کد می توان سلام را در فایل شماره 1 نوشت

Put #1,1,"salam"

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

Open "c:s.txt" For Binary As 1

Input #1, sa

MsgBox sa

این فایل باز شد و اطلاعان خط اول آن در متغیر سا ذخیره شد

حالا نوبت به بستن فایل است

Close #1

3-تابع command

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

Msgbox command

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

Msgbox mid(command,2,len(command)-2)

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

مثال عملی

یک کادر عکس روی فرم بکشید و کدهای زیر را کپی کنید

Private Sub Form_Load()

On Error Resume Next

Image1.Picture = LoadPicture(Mid(Command, 2, Len(Command) - 2))

 

End Sub

شما یک برنامه نمایش عکس ساختید!

4-آرایه

به مقداری از حافظه که می توان در آن مقداری را ذخیره کرد متغیر می گویند ، ولی به مقداری از حافظه که می توان در آن چند متغیر( در واقع چند رشته جداگانه) را جا داد آرایه گویند که استفاده از آن به صورت زیر است:

Dim s(2) as string

S(0)="salam"

S(1)="khooby"

S(2)="che khabar"

Msgbox s(1)

نکته: آرایه در بعضی مواقع بسیار مفید می باشد و ما را از تعریف چندین متغیر بی نیاز میکند.

5-تابع Point

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

ابتدا یک picturebox روی فرم خود قرار دهید و در آن یک عکس بگذارید و picturebox را طوری بکشید که مقدار زیادی از فرم دیده شود سپس کدهای زیر را بنویسید.

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Me.BackColor = Picture1.Point(X, Y)

End Sub

 

5-معکوس کردن رنگ های یک عکس(invert)

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

Private Sub Command1_Click()

With Picture1

Picture1.PaintPicture .Picture, 0, 0, , , , , , , vbDstInvert

End With

End Sub

6- منوی شناور(popupmenu)

نحوه ساختن منوی شناور یعنی همان منوی کلیک راست.

Popupmenu yourmenu

7-نحوه گذاشتن خط جداکننده در یک منو

فقط کافیست در قسمت caption آن منو – گذاشت

8-اعداد اتفاقی

برای ایجاد یک عدد اتفاقی (شانسی) باید از تابع rnd استفاده کرد.

Msgbox rnd

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

Randomize

Msgbox rnd

و برای تعیین محدوده انتخاب اعداد به این صورت کد می نویسیم

Randomize

Msgbox rnd*16

و برای صحیح کردن این عدد از تابع int استفاده میکنیم.

Randomize

MsgBox Int(Rnd * 16)

6-تایمر چیست؟

تایمر شیئی ایت که اگر فعال باشد کار خاصی را در بازه زمانی خاصی کهشما تعیین می کنید انجام می دهد (واحد تعیین بازه زمانی شی تایمر میلی ثانیه است)

7-ویژوال بیسیک شما فونت فارسی را درست نشان نمی دهد؟

اگر ویژوال بیسیک شما کلمه هایی مانند (گ-ک-چ-پ-ژ) را به صورت سه نقطه نشان می دهد روی کنترل مورد نطر کلیک کرده و به قسمت فونت رفته و فونت آن شی را Times New Roman قرار دهید می بینید که مشکل شما حل خواهد شد.

8-"اولین سطر" + خط بعدی + "دومین سطر"

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

Msgbox "hosein" & vbcrlf & "mostafaiefar"

8- استفاده راحت وزیاد از خصوصیات یک شی

اگر می خواهید از خصوصیات یک شی به مقدار زیاد استفاده کنید می توانید از With و End With استفاده کرد که مثال عملی آن به صورت زیر است:

With Me

.Caption = "http://www.hoseinmos.blogpars.com"

.BorderStyle = 3

.Enabled = True

.Visible = True

End With

9- نمایش یک عکس در یک کنترل عکس

تا بحال حتما خواسته اید که در طول اجرای برنامه عکس یکی از کنترلهای برنامه را عوض کنید و حتما به این حالت کد نوشته اید:

Image1.picture="c:mohsen.jpg"

و برنامه شما هم دچار خطا شده است . چرا؟

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

Image1.picture=loadpicture("c:mohsen.jpg")

تابع loadpicture یک عکس را به حافظه فراخوانی می کند و یک عدد را برمی گرداند که این شماره در واقع شماره همان عکس لود شده می باشد.

10- رنگهای 15 گانه کیوبیسیک در وی بی

تابع qbcolor از شما درخواست می کند که شماره یکی از آن 15 رنگ کیوبیسیک را بدهید و اگر شما یکی از این رنگ ها را با استفاده از شماره آن درخواست کنید شماره ای برگشت داده می شود که کد یک رنگ در وی بی است و می توانید آن رنگ را استفاده کنید. مثال :

Me.backcolor=qbcolor(rnd * 15)

با این کد می توانید هر بار یک رنگ تصادفی را برای پس زمینه فرم خود انتخاب کنید.

11- برنامه تان کل سیستم را به هنگ می اندازد؟

در وی بی یک تابع به نام Doevents موجود می باشد که اگر برنامه شما حتی هنگ کند سیستم عامل در نهایت سلامت(بدون هنگ کردن) کار میکند و خیلی راحت برای کاربران این امکان وجود دارد که برنامه هنگ کرده شما را ببندند .چه خوب نه؟

نکته: البته اگر از این تابع زیاد استفاده کنید برنامه شما کند می شود

نحوه کار به صورتی است که مثلا در یک حلقه پردازشگر کارها را یکی پس از دیگری انجام می دهد و وقتی به این تابع رسید مروری بر فرمان هایی که به سیستم عامل داده شده است را اجرا میکند(به کارهای سیستم عامل رسیدگی می کند) که این سیستم مانع از هنگ کردن سیستم عامل می شود.

12- کپی اطلاعات به کلیپ برد و استخراج اطلاعات از آن

با تابع settext از شی clipboard می توان یک رشته به کلیپ برد خالی کپی کرد به صورت زیر:

Clipboard.SetText "salam"

*نکته: برای کپی یک متن باید حتما کلیپ برد ویندوز شما خالی باشد.

با تابع gettext از شی clipboard می توان به اطلاعات داخل کلیپ برد دسترسی پیدا کرد

mohsen = Clipboard.GetText

MsgBox mohsen, vbInformation

برای خالی کردن کلیپ برد به این صورت عمل کنید.

Clipboard.Clear

 

13- پنجره open بدون متن Open as read-only

برای این کار کافی است که یک خصوصیت به شی openfiledialog اضافه کرد که به صورت زیر انجام می شود.

Commondialog1.flages=cdlofnhidereadonly

Commondialog1.showopen

14-انتخاب فونت

برای نمایش پنجره فونت از شی comdlg32.ocx باید به صورت زیر عمل کنید بعنی ابتدا به این شی بگویید که فونتهای چه قسمتی را نشان دهد.

Commondialog1.flages=3

Commondialog1.showfont

15- چند خط کد در یک خط !

برای این کار فقط کافی است ابتدا کاراکتر : را گذاشته و سپس کد بعد را بنویسید.

16-نحوه کار با تابع shell

باز کردن فایل

Shell "explorer.exe F:filesTrainingprogrammingvbQustion vb.pdf", vbNormalFocus

 

باز کردن پوشه

Shell "explorer.exe c:", vbNormalFocus

باز کردن صفحه وب

Shell "explorer http://www.hoseinmos.blogpars.com", vbNormalFocus

اجرای فرمان داس :

خاموش کردن بعد از 10 ثانیه

Shell "shutdown -s -t 10", vbNormalFocus

16-پرسیدن سوال از کاربر با استفاده از تابع msgbox

'created by mohsen shamohammady

http://www.hoseinmos.blogpars.com

Private Sub Form_Unload(Cancel As Integer)

hosein = "Are You Sure to exit program?"

If MsgBox(mohsen, vbQuestion + vbYesNo, "Exit") = vbYes Then

End

Else

Cancel = True

End If

End Sub

17-توابع وی بی کمه !

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

به کارهایی بر خورده اید که با توابع وی بی ممکن نیست؟

آیا حس می کنید وی بی خیلی ضعیف است ؟

خب اگر چنین فکری می کنید پس این قسمت رو هم بالای قسمت های دیگه بخونید.

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

توابع API چیست؟

    API مخفف Application Programming Interface است و به معنای رابط برنامه نویسی کاربردی است.API مجموعه ای از توابع برنامه نویسی است که هم مورد استفاده سیستم عامل واقع می سود و هم یک برنامه کاربردی می تواند از آن استفاده کند. توابع API در قالب فایل های DLL عرضه میشود. در سیستم عامل ویندوز فایل هایی مثل : Kernel32.dll ، gdi32.dll ، user32.dll و چندین فایل دیگر شامل این توابع هستند. این توابع معمولاً با زبان برنامه نویسی C نوشته شده اند. ولی در زبان های دیگر مثل دلفی ، ویژوال سی پلاس پلاس و ویژوال بیسیک هم می توان از آنها استفاده کرد.

    توابع API بر دو دسته اند :

· 16 بیتی : این توابع در ویندوز های قدیمی کاربرد داشته اند و در سیستم ها ی کنونی به تدریج جای خود را از دست داده اند. و فقط برای حفظ سازگاری ویندوز با برنامه های قدیمی این توابع هنوز هم با ویندوز عرضه می شوند. توابع 16 بیتی ویندوز در حدود 730 عدد می باشد.

· 32 بیتی : این توابع نمونه های پیشرفته تر توابع قدیمی 32 بیتی هستند. همانطور که گفته شد توابع 16 بیتی قدیمی شده اند و نمونه های 32 بیتی اکثر آنها در ویندوز موجود است. برای آنکه این گونه توابع با نمونه های 16 بیتی شان اشتباه گرفته نشود در انتهای آنها یک کاراکتر A وجود دارد که نشان دهندهء 32 بیتی بودن آنهاست. توابع 32 بیتی بالغ در 6500 عدد هستند.

برای استفاده باید هر کدام را که می خواهیم فراخوانی کنیم.

. چگونه ؟

 

 

نحوه به کار بردن توابع API در ویژوال بیسیک

 

برای استفاده از توابع API در وی بی ابتدا باید آنها را در وی بی تعریف نمود که اصطلاحاً به آن Declare گفته می شود. صورت یک Declare به این صورت است

Declare Function FnName Lib LibName [Alias RealName] (Parameters )As ReturnType

 

 

o FnName       :  نام تابع ( نامی که قرار است در برنامه استفاده شود ).

o LibNam       :  نام کتابخانه ( فایل با پسوند DLL ).

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

o Parameters   :  پارامتر های تابع.

o ReturnType   :  نوعی که تابع قرار است بر گرداند.

 توجه : در نوشتن نام واقعی تابع ( یا اگر نام واقعی و مجازی تابع یکی باشد ، نام مجازی آن ) بزرگ و کوچک بودن حروف اهمیت دارد .

برای دیدن اکثر توابع وی بی می تونید به نشانی زیر مراجعه کنید.

http://www.allapi.net

و یا از برنامه تماما فارسی Apia استفاده کنید.

*نکته:برای فراخوانی یک تابع ممکن است بخواهیم این فراخوانی در چند خط انجام گیرد که برای این کار باید در پایان خط کاراکتر _ گذاشته شود در صورت وجود این کاراکتر ویژوال بیسیک متوجه می شود که باید بقیه کد را از خط بعد بخواند.

18-تاریخ شمسی در وی بی

مشکل تاریخ شمسی ما هم حل شد .خوب یه Dll پیدا کردم که دیگه مشکل تاریخ شمسی رو کامل حل میکنه . این dll رو گروه نرم افزاری OxinSoft نوشتن که دمشون هم گرم . بعدش هم یه Help توپ براش گذاشتن که دیگه جای هیچ توضیح اضافی رو نداده  تمام متد های این Class رو توضیح داده که از توضیحات من هم بهتره !!!

:: برای دریافت فایل اینجا کلیک کنید

19- کشیدن خط

برای کشیدن خط در وی بی باید از تابع line از شی me استفاده کرد که طرز استفاده از آن به صورت زیر است.

Me.line(x1,y2)-(x2-y2)

یعنی متصات خط شروع و مختصات نقطه پایان. به همین سادگی ، به همین خوشمزگی

دوستان عزیز جون خودتون و هرکی که دوست دارین نظر یادتون نره!



برچسبها : مشکلات - دوستان
نوشته شده توسط حسين در 15 آذر 1387 ساعت 09:58
آشنایی با حلقه های تکرار |

آشنایی با حلقه های تکرار
فرض کنید می خواهیم در ویژوال بیسیک برنامه ای بنویسیم که اعداد ۱ تا ۵ را روی فرم چاپ کند , شاید فکر کنید که به سادگی و با استفاده از دستور Print می توان این کار را انجام داد و فقط باید بنویسیم :
جهت چاپ اعداد روم فرم باید آن را در روال Form_Activate بنویسیم :
Print 1
Print 2
Print 3
Print 4
Print 5
برنامه بالا درست است که اعداد ۱ تا ۵ را زیر هم روی فرم چاپ می کند اما واقعاً این دستور منطقی است؟ اگر می خواستید برنامه ای بنویسید که اعداد ۱ تا ۱۰۰ را روی فرم چاپ کند آیا باز هم حوصله می کردید و صد تا دستور Print می نوشتید؟ کاملاً مشخص است که راه حل فوق برای حل این مسئله منطقی نیست. ویژوال بیسیک برای حل این مشکل از حلقه های تکرار استفاده می کند. با استفاده از حلقه های تکرار به راحتی می توانیم اعداد ا تا ۵ را تنها با چند خط کد نویسی چاپ کنیم.
حلقه تکرار For … Next :
روش استفاده را با یک مثال شرح می دهم :
For a = 1 To 5
Print a
Next a
بعد از For ما نامی را برای شمارنده در نظر می گیریم . سپس علامت مساوی را قرار می دهیم و تعداد دفعات تکرار را تعریف می کنیم. در خط دوم شمارنده را پرینت میکنیم و خط سوم بدین مفهوم است که حلقه شمارنده مجدداً با مقدار جدید به اول باز می گردد و عملیات مربوطه را تکرار می کند. این حلقه ۵ بار تکرار می شود و در پایان اعداد ۱ تا ۵ را پشت سر هم و روی فرم چاپ می کند.
نکات قابل توجه :
· حلقه های تکرار می تواند گام کاهشی و افزایشی هم داشته باشد که با Step آن را مشخص می کنیم.
· جهت چاپ اعداد روم فرم باید آن را در روال Form_Activate بنویسیم یا خاصیت AutoRedraw در پنجره خصوصیات Form_Load برابر Ture قرار دهیم.
· حلقه تکرار می تواند از هر عددی شروع شود و به هر عددی ختم شود.
· بهتر است شمارنده را همیشه با یک حرف انگلیسی نام گذاری کنیم تا دچار سردرگمی نشویم.
قطعه برنامه زیر اعداد ۱ تا ۵ را روی فرم و زیر هم چاپ می کند :
For i = 5 To 1 Step - 1
Print i
Next i
سوالات خود را در قسمت نظرات مطرح نمائید. مطمئن باشید بی پاسخ نمی ماند .




برچسبها : آشنایی - حلقه - های - تکرار
نوشته شده توسط حسين در 15 آذر 1387 ساعت 09:38
پروژه | عمومي


برنامه اي بنويسيد كه يك رمز را گرفته و اگر درست بود فرم 2 را  نمايش دهد در غير اين صورت پيامي مبتني بر اشتباه بودن رمز نمايش دهد
ابتدا يك فرم مانند فرم زير ايجاد مي كنيم و بر روي كامند1 كليك مي كنيم و دستور زير را مي نويسيم
Private Sub Command1_Click()
If Text1.Text = "ali" Then
Form2.Show
Else
a = MsgBox("ايا مي خواهيد ادامه بدهيد", vbYesNo, "password error")
If a = 7 Then End
If a = 6 Then
Text1.Text = ""
Text1.SetFocus
End If
End If
End Sub



برچسبها : پروژه
نوشته شده توسط حسين در 13 آبان 1387 ساعت 16:08
توابع داخلی vb | عمومي

تابع Replace

Function Replace (Expression As String, Find As String, Replace As String, [Start As Long = 1], [Count As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) As String

 کارایی این تابع در جایگزین کردن یک رشته به جای رشته دیگر می باشد.

این تابع توسط آرگومان Expression یک رشته تولید شده را دریافت می کند و توسط آرگومان Find

رشته ای را که باید برداشته شود را در رشته جستجو کرده و رشته ای که آرگومان Replace  میگیرد

را با آن رشته یافت شده جایگزین می کند.

مثال :

'Mstr is "My Company Name is AvangSystem"

Mstr = Replace ("My Company Name is Avang JustSystem","Avang JustSystem", "AvangSystem")

 

تابع Space

Function Space (Number As Long)

این تابع مقدار آرگومان Number را گرفته و به همان مقدار فضای خالی در رشته ایجاد می کند.( آرگومان Number یک عدد می گیرد وبه ازای هر شماره یک فضای خالی Space} } به تابع Space  نسبت می دهد.)

 

'Return it = "ALI REZA"

MStr= "ALI" + Space (1) + "REZA"

تابع Len

 Function Len (Expression)

این تابع مقدار آرگومان Expression را گرفته و مقدار بایتی که این مقدار احتیاج دارد را برمی گرداند.

( Len مخفف کلمه Length می باشد.)

'Return it = 6

Mstr =Len ("Rostam")

 

تابع Val

Function Val (String As String) As Double

این تابع توسط ورودی String رشته ای شبه عددی را دریافت کرده و آنرا به صورت عددی از نوع داده Double بر می گرداند.

'Return it = 123

Num = Val ("123")

'Return it = 123

Num = Val ("123HGJDKL23556")

 

تابع InStr

Function InStr ([Start], [String1], [String2], [Compare As VbCompareMethod = vbBinaryCompare])

این تابع با بقیه توابع دیگر که تاکنون دیدید یک فرق اساسی دارد آن هم اختیاری بودن تمام آرگومانهای

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

ولی مقادیر دو ورودی String1 و String2 برای گرفتن پاسخ الزامی است.

 آرگومانها :

Start: این ورودی یک مقدار عددی از 1 تا طول ورودی String1 را می تواند بگیرد. (1)

String1 : یک رشته به هر طولی می گیرد.

String2 : یک رشته کوچکتر یا باندازه ورودی  String1 می گیرد.

Compare: این تابع مقایسه دو ورودی String1و String2 را تعیین می کند.

 

کا این تابع: این متد ، توسط String1 رشته ای کامل می گیرد و توسط String2 رشته ای که می خواهید در String1 جایگاه آن را بیابید.

بالفرض مثال اگر String1 بگیرد "Ali" و ما بخواهیم جیگاه "i" را در آن بیابیم ، مقدار String2 را

همان "i" قرار می دهیم.

خروجی : خروجی این تابع یک عدد می باشد از Start تا طول رشته String1 .

مثال: { به بزرگی و کوچکی کاراکتر ها و مقدار مقایسه توجه کنید.)

'Return: (3)

Me.Caption = InStr (1, "Rostam", "S", vbTextCompare)

'Return: (3)

Me.Caption = InStr ("Rostam","s")

 

تابع StrConv

Function StrConv (String, Conversion As VbStrConv, [LocaleID As Long])

 

این تابع توسط ورودی String رشته ای گرفته و توسط ورودی Conversion رشته را با تغییراتی برمی گرداند. تغییراتی مثل Lowercase , Uppercase  و ...

 مقادیرثابتی که آرگومان Conversion  می گیرد :

Const vbUpperCase = 1

Const vbLowerCase = 2

Const vbProperCase = 3

Const vbWide = 4

Const vbNarrow = 8

Const vbKatakana = 16 (&H10)

Const vbHiragana = 32 (&H20)

Const vbUnicode = 64 (&H40)

Const vbFromUnicode = 128 (&H80)

مثال:

'MStr is "ali"

Mstr = StrConv ("ALI", vbLowerCase)

 

توابع LCase و UCase

Function UCase (String)

Function LCase (String)

این توابع توسط ورودی String رشته ای دریافت می کنند. تابع LCase رشته را به Lowercase و

تابع UCase رشته را به Uppercase برمی گرداند.

مثال:

'MSTR = "ALI"

MSTR = UCase ("ali")

'MSTR = "ali"

MSTR = LCase ("ALI") 

 

تابع String

Function String (Number As Long, Character)

 

این تابع توسط ورودی Number یک عدد می گیرد که توسط آن کاراکتر تعیین شده ی ورودی Character به همان تعداد در رشته برگشتی تکرار می شود.

مثال:

'MStr is "MOHAMMAD"

MStr = "MOHA" & String (2,"M") & "AD"



برچسبها : دستورات - پایه - برای - برنامه - نویسی - توابع - داخلی - توابع داخلی vb
نوشته شده توسط حسين در 4 مهر 1387 ساعت 10:39
اولين پروژه و آشنايی با برنامه نويسی بوسيله VB | عمومي

به عنوان اولين پروژه، قصد داريم فرمی داشته باشيم با دو دکمه Message و Exit که اگر در دکمه Message کليک شد، پيغامی نمايش داده شود و اگر دکمه Exit کليک شد از برنامه خارج شود(شکل3):

Figure 3

ابتدا فرمی که بر روی صفحه نمايش باز است (فعلاً به نام Form 1 ) را به اندازه دلخواه در می آوريم و در حالی که Select است، از پنجره Properties (سمت راست تصوير) ، مشخصه (Property) های زير را چنين Set می کنيم:

1-    مشخصه Name آن را به frmFirstProject تغيير می دهيم.

2-    مشخصه Caption آن را به First Project تغيير می دهيم.

مشخصه Caption معمولاً عنوانها را تغيير می دهد. مثلاً در مورد فرمها، آنچه در اين مشخصه Set شود در Title Bar از آن فرم ديده می شود يا در مورد دکمه ها، آنچه در اين مشخصه قرار داده شود، آن چيزی است که بر روی دکمه ( به عنوان نام دکمه ای که ُکاربر می بيند) ديده می شود.

مشخصه Name يکی از مهمترين مشخصه هايی است که بايد برای تمام کنترلها Set شود. آنچه در اين مشخصه قرار گيرد، نامی است که VB آن کنترل را به اين نام می شناسد (و خصوصاً در هنگام کدنويسی و برای دسترسی به کنترلها، بسيار مورد استفاده واقع می شود). به طور پيش فرض VB برای هر کنترل يک Name در نظر می گيرد، اما در پروژه های واقعی ، معمولاً تعداد کنترلها آنقدر زياد می شوند که نامهای پيش فرض به سختی در ذهن می ماند. برای اين منظور بهتر است به کنترلها، نامهايی را نسبت دهيم که از جهتی با او متناسب باشد. لذا بهتر است اولاً در نام آنها چيزی باشد که نشان از نوع آن کنترل باشد و عبارتی نيز باشد که بيانگر موضوع يا کار فعلی آن باشد. به عنوان مثال شما می بينيد که ما در مشخصه Name از form ، گفتيم که قرار دهيم: frmFirstProject که frm به خاطر تشخيص Form بودن آن است و First Project به خاطر تشخيص اينکه اين فرم برای First Project است. يا مثلاً به فرض اگر بخواهيم دکمه ای به نام Exit بر روی فرمی داشته باشيم، من ترجيح می دهم که نام آن را cmdExit بگذارم که cmd را از Command Button گرفته ام. توجه داريم که اين نامی است که VB آن را می شناسد وگرنه برای زيبايی کار Caption اين دکمه را همان Exit می گذاريم و اين نام گذاری به زيبايی پروژه ما لطمه ای وارد نمی کند.

برای ادامه، دو دکمه (Command Button) بر روی فرم قرار می دهيم (که برای اين منظور از پنجره Controlها که در سمت چپ تصوير است، کنترل Command Button به شکل را دابل کليک می کنيم و يا با يک Click و انتخاب آن، بر روی فرم، به اندازه دلخواه Drag & Drop می کنيم) و جای آنها را به مکان دلخواه مورد نظر (به وسيله Drag & Drop آنها) تغيير می دهيم. آنگاه برای يکی از آنها:

1-    مشخصه Name را به cmdMessage تغيير می دهيم.

2-    مشخصه Caption را به Message تغيير می دهيم.

و برای ديگری تغيير می دهيم:

1- مشخصه Name را به cmdExit .

2- مشخصه Caption را به Exit .

که پس از اين، شمای ظاهری (Interface) برنامه کامل شده است و بايد به کدنويسي آن پرداخت.

اگر بر روی دکمه Exit دابل کليک کنيد (البته هنوز در Design Time هستيم و نه Run TimeEvent Procedure مربوط به رويداد Click (Event) از آن را به صورت زير باز می کند:

Private Sub cmdExit_Click ()

 End Sub

که هر دستوری که در اين Procedure (يعنی بين خط Private و خط End Sub) نوشته شود، در زمان اجرا، وقتی کاربر روی دکمه Exit کليک می کند، اين دستورات اجرا خواهند شد.

دستوری که بايد در cmdExit_Click نوشته شود بسيار ساده است:

Private Sub cmdExit_Click ()

     End

End Sub

دستور End هر جايی از برنامه که اجرا شود فوراً اجرای برنامه را متوقف و از آن خارج می شود.

حال اگر به ترتيبی که در بالا ذکر شد، Event Procedure مربوط به رويداد click از دکمه Message را نيز باز می کنيم و آن را به صورت زير تغيير می دهيم:

Private Sub cmd, Message - Click

     MsgBox “The first project was done successful” و و  “Thanks”

End Sub

پروژه مورد نظر آماده شده شده است. دستور MsgBox (مخفف Message Box )باعث می شود تا يک کادر پيغام بر روی صفحه نمايش ظاهر شود و تا زمانی که دکمه OK از آن را فشار دهيم، پيغامی را نمايش دهد. در اين دستور پارامتر اول، پيغام مورد نظر را به صورت string (يک داده متنی) دريافت مي کند (در VB هر عبارتی که بين دو علامت " " قرار گيرد، string فرض می شود) و پارامتر سوم نيز به عنوان Message Box (که در Title Bar آن آورده خواهد شد) را به صورت متنی دريافت می کند. توجه داريم که بين هر دو پارامتر از علامت کاما (,) استفاده می کنيم و بنابراين در دستور MsgBox برنامه مان برای اينکه پس از پارامتر اول، پارامتر سوم را وارد کنيم بين آن دو پارامتر، دو بار کاما گذاشته ايم.

حال برنامه تان را اجرا کنيد و نتيجه کار را ببينيد (اجرای برنامه در VB توسط کليد F5 صورت می گيرد.

ذکر چند نکته:

1-    اگر بخواهيد فشردن ALT+X همان عمل دکمه Exit را انجام دهد(ايجاد(Hot key) ، کافی است در Caption اين دکمه چنين بنويسيد: E&xit که در اين صورت در زمان اجرا، زير حرف x يک underline (زير خط) می کشد که در ويندوز اين حالت نشانگرHot key داشتن آن حرف است ، همين کار را هم در مورد دکمه Message انجام دهيد.

2-    در هنگام کدنويسي اگر چند حرف اول يک کلمه شناخته شده VB (مانند نام کنترلها و يا Property ها، Method ها و ...) را بنويسيم و CTRL+Space را فشار دهيم، اگر تنها يک کلمه با حرف اول برابر آنچه شما نوشته ايد پيدا کند، بقيه حروف را خود، کامل می کند و اگر تعدادی کلمه با اين مشخصات پيدا کند، ليست آنها را نمايش می دهد که می توانيد يا يکی از آنها را انتخاب کنيد (بر روی کلمه از ليست برويد و کليد space را بزنيد) و يا تعدادی از حروف آن را بنويسيد تا محدوده کلمات مشابه کوتاهتر شود. اين کار را حتماً امتحان کنيد!

3-    زمانی که يک فرم باز می شود، به ترتيب چهار Event بر روی آن رخ می دهد:

  Initialize 

Load

 Activate

 Got focus

که زمانی که رويداد اول رخ می دهد، هنوز object های روی فرم ايجاد نشده اند و قابل دسترسی نيستند. اين object ها در load ساخته می شوند، اما هنوز فرم نمايش داده نشده است. وقتی فرم نمايش داده می شود، رويداد Activate و وقتیfocus به آن داده می شود، رويداد Got focus روی مي دهد. (منظور از گرفتن focus اينست که آن کنترل خاص که در اينجا فرم است، کانون تمام پيامها شود، مثلاً اگر کليدی زده شد به آن فرستاده شود و ...).

4-    برای ذخيره کردن پروژه از منوی فايل و گزينه Save استفاده می شود که بايد تمام فرمها، ماژولها، ... و اصل پروژه را جداگانه ذخيره کرد. لذا اگر شما برنامه First Project راsave کنيد، يکبار نام فرم را save می کند (با پسوند.frm) و يکبار فايل پروژه را (با پسوند.VBP).



برچسبها : -
نوشته شده توسط حسين در 2 مهر 1387 ساعت 10:34
معرفی بخشهای VB | عمومي

هنگامی که VB اجرا می شود، توسط پنجره ای (شکل1)، نوع پروژه ای که می خواهيد طراحی کنيد از شما خواسته می شود.

Figure 1

همان طور که ملاحظه می فرماييد، انواع مختلفی از پروژه ها در اين پنجره وجود دارد که در ادامه به برخی از آنها خواهيم پرداخت، ولی فعلاً نوع استاندارد پروژه های VB يعنی نوع Standard EXE را انتخاب و آن را باز(Open) می کنيم. اين نوع پروژه (که غالب پروژه ها را در بر می گيرد) برای تهيه برنامه های کاربردی(Applications) مورد استفاده قرار می گيرد.
پس از باز کردن پروژهStandard Exe ، پنجره اصلیVB (شکل 2 ) برای اين نوع پروژه باز می شود:
 


figure 2

اين پنجره، علاوه بر آنچه عموماً در پنجره های ويندوز می بينيم (مانند Title Bar وMenu Bar)، شامل چند بخش بسيار مهم می باشد:
1- يک فرم(Form) خالی با عنوان (Caption)برابر Form1 وجود دارد. اين همان فرمی است که بلافاصله پس از اجرا (Run) شدن برنامه، روی صفحه نمايش، قرار می گيرد (اين پيش فرض قابل تغيير است).
2- نوار ابزار Standard Buttons که دکمه هايی با کاربرد معمولاً بيشتر را شامل می شود. تعدادی از اين دکمه ها را در ويندوز می شناسيد (مانند Copy, Paste, Undo, Redo, Open وSave) و برخی ديگر را در ادامه خواهيم ديد.
3- پنجره ای سمت چپ تصوير ديده می شود. اين پنجره شامل برخی از کاربردي ترين کنترلهای قابل ديدن (VCL) می باشد. در ادامه با VCLها آشنا خواهيم شد و از آنها بسيار بهره خواهيم برد. به اين پنجره Tool Bar (جعبه ابزار) گفته می شود.
4- در سمت راست تصوير سه پنجره ديگر ديده می شود. در بالا، پنجره پروژه (Project)، سپس پنجره مشخصات(Properties) و در پايين، پنجرهForm Layout قرار دارد. پنجرهProject شامل نام تمام اجزای پروژه مانند فرمها، ماژولها(Moduls)،Activex ها و ... می باشد. مثلاً اگر در پروژه ای چند فرم وجود داشته باشد و بخواهيم به فرم ديگری برويم، کافی است نام آن را در اين پنجره دابل کليک نماييم. پنجره Properties، برخی از مشخصه(Property) های مربوط به VCL ای که انتخاب شده (Select) باشد را نمايش می دهد که می توان آنها را در هنگام طراحی(Design Time) تغيير داد (ساير مشخصه ها بايد در هنگام اجرا(Run Time) تنظيم شوند.) در پنجرهForm Layout نيز می توان مکان قرار گيری Form هنگام اجرای برنامه(Run Time) بر روی صفحه نمايش را تعيين کرد (همچنين اين کار را توسط کدنويسي نيز می توان انجام داد و عموماً همين روش هم توصيه می شود و لذا عموماً حتی می توان اين پنجره را به کل بست).
در اين بخش با شمای کلیVB آشنا شديم، در ادامه درباره VCL ها و نحوه کدنويسي برای آنها مطالب مفيدی خواهيم آموخت



برچسبها : -
نوشته شده توسط حسين در 2 مهر 1387 ساعت 10:25
نوشته هاي پيشين
:: توجه :: برای مشاهده هر پوشه یا مطلب کافیست بروی عنوان آن کلیک نمائید تا باز یا بسته شود
صفحات: [1]