تبلیغات
برنامه نویسی بانک اطلاعاتی وِیژوال نت همه چی - ترفند هایی از ویژوال بیسیک
برنامه نویسی بانک اطلاعاتی وِیژوال نت همه چی
خدایان برنامه نویسی آمده اند بیایید و فیض ببرید

لینکدونی

آرشیو موضوعی

آرشیو

← آمار وبلاگ

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

ترفند هایی از ویژوال بیسیک



ترفند هایی از ویژوال بیسیک

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 = "www.mohsen-pc.blogfa.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-"اولین سطر" + خط بعدی + "دومین سطر"

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

Msgbox "mohsen" & vbcrlf & "shamohammady"

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

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

With Me

Caption = "www.Tarfandwin.Mihanblog.com"

.BorderStyle = 3

.Enabled = True

.Visible = True

End With

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

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

Image1.picture="c:\Tarfandwin.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:\files\Training\programming\vb\Qustion vb.pdf", vbNormalFocus

 

باز کردن پوشه

Shell "explorer.exe c:\", vbNormalFocus

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

Shell "explorer http://www.mohsen-pc.blogfa.com", vbNormalFocus

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

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

Shell "shutdown -s -t 10", vbNormalFocus

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

'created by Danial Delshad

'http://www.Tarfandwin.mihanblog.com

Private Sub Form_Unload(Cancel As Integer)

Danial = "Are You Sure to exit program?"

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

End

Else

Cancel = True

End If

End Sub

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

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

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

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

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

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


Source: Www.mohsen-pc.blogfa.com

درباره وبلاگ

مدیر وبلاگ : دانیال

آخرین پست ها

جستجو

نویسندگان