تبليغاتX
آموزش زبان ویژوال بیسیک ، VB.Net

سلام دوستان , امروز می خوام یه مطلب کاربردی تو VB رو براتون بگم که شاید خیلی به کارتون بیاد این کد شاید براتون تو برنامه هایی که باید از ورودی مقدار خاصی رو بگیرید مثلا می خواهید از ورودی فقط یک مقدار عددی رو بگیرید و بعد اون رو تو محاسبات استفاده کنید و اگر کاربر مثلا در ورودی 788در12 را تایپ کنه برنامه Error میده خوب برای رفع این مشکل می شه از ورودی فقط عدد گفت یعنی در صورتی که کاربر فقط اعداد 0 تا 9 رو تایپ کنه در ورودی نمایش داده می شه این هم حلال این مشکل .

خوب این کد رو بهتر که در رویداد Keypress کنترل مورد نظر خود ( از جمله  Textbox , Rich Textbox , Inputbox  و ... ) بنویسید که به محض فشرده شدن هر کلید از سوی کاربر این قسمت چک می شود .

 

Private Sub TextBox_KeyPress(KeyAscii As Integer)
'=============================================
   Dim StrValid As String
   StrValid = "0123456789"
   If InStr(StrValid, Chr(KeyAscii)) = 0 Then
      KeyAscii = 0
   End If
End Sub

 

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

1. تابع Instr : یک زیررشته را در یک رشته دیگر جستجو میکند و موقعیت آنرا در رشته بر می گرداند شکل کلی این تابع به صورت زیر است :

InStr([start, ]string1, string2[, compare])

قسمت

توضیحات

start

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

string1

رشته اول

string2

رشته دوم

compare

مشخص کردن نوع مقایسه که بین دو رشته انجام میشود که خود بر سه نوع vbBinaryCompare و vbDatabaseCompare و vbTextCompare می باشد

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

instr("visual basic Language","Language")  ==============> عدد 14 برگردانده میشود

:: یک نکته و آن اینکه مواvدی که در شکل کلی این تابع در داخل [ ] قرار دارند اختیاری می باشند .

 

2. تابع Chr : این تابع کاراکتر معادل کد اسکی یک مقدار را بر می گرداند

 KeyAscii : آرگومانی است که کد اسکی کلیدی از صفحه کلید را که فشرده شده بر می گرداند.

+ نوشته شده توسط پژمان رودخانه ای در یکشنبه بیست و نهم آذر 1383 و ساعت 17:29 |

خوب اینجا می خوام یک کد کاربردی دیگه رو بهتون بگم . این کد باعث می شه که وقتی شما رویداد خاصی رو اجرا مکنید , کلید خاصی از کیبرد اجرا شود یعنی مثلاً اگر شما روی یک Textbox هستید و کلید Enter را فشردید عملی معادل فشردن کلید ..... , Tab ,Delete,Pagedown , F1 ,F2 روی دهد :

Private Sub TextBox_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
       SendKeys "{tab}"
    End If
End Sub

باز هم این کد را در رویداد keypress پیشنهاد می کنم .

در اینجا کدهایی که می توان از طریق این تابع با آنها کار کرد را می بینیم :

Key

Code

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER} or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

تا برنامه هایی بعدی خدا حافظ .
 

 

+ نوشته شده توسط پژمان رودخانه ای در شنبه بیست و هشتم آذر 1383 و ساعت 1:38 |

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

این کنترل انواع مختلفی از کلید رو به شکل کلیدها ویندوز XP و ویندوز 3.1 و مکینتاش و نت اسکپ و ... را در اختیارمان می گذارد که نمونه هایی از این رو تو عکس زیر می بینیم :

 در اینجا لازم می بینم که نحوه استفاده از کنترلها تو VB رو براتون بگم . ابتدا فایل فایل کنترل که با پسوند ctl رو در محلی که پروژه مون قرار دارد کپی میکنیم و بعد از منوی Project آیتم Add user control رو انتخاب مکنیم می بینیم که پنجره ای ظاهر میشود سربرگ Exiting را انتخاب کرده و بعد فایل کنترل مورد نظر را انتخاب می کنیم می بینیم که این فایل در پنجره Project Explorer به پروژه مون اضافه میشود و از طرفی آیکنی نیز در به Toolbox مون اضافه میشود ولی ممکن است که گاهی این آیکن غیر فعال باشد برای فعال کردن آن کافیست تمام پنجره ها را در VB بسته و دوباره آنرا از Project Explorer باز کنیم می بینیم که این آیکن فعال می شود اکنون می توانید از آن کنترل در فرمهایتان در Visual Basic استفاده کنید .

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

 

 

+ نوشته شده توسط پژمان رودخانه ای در پنجشنبه بیست و ششم آذر 1383 و ساعت 1:41 |

در ابتدا برای اینکه این مطلب جابیفتد نظری به شکلهای زیر بیاندازید

شکل 1 - حالت عادی فرم

شکل 2 - حالت فرم با استفاده از WinXP Themes

برای این کار باید از API ها استفاده کنیم . API برگرفته شده از سر واژه های Application Programing Interface (رابط برنامه نویسی کاربردی) است . API ها توابعی از پیش ساخته شده در سیستم عامل ویندوز هستند که می توانیم از انها در برنامه نویسی در Visual Basic استفاده کنیم . این توابع در چندین فایل Dll موجودند که از جمله این فایلها متوان KERNEL32 , USER32 , GDI32 , WINMM و .... . ما برای استفاده از WinXP Themes باید از تابع  InitCommonControls که در کتابخانه ی   که در و یندوز XP موجود است استفاده می کنیم . برای فراخوانی (Declare ) یک تابع  از متد زیر استفاده میکنیم :

Private Declare Function <نام تابع> Lib " Dll نام کتابخانه " () As Long

پس برای فراخوانی تابع InitCommonControls  با توجه به متد بالا در قسمت General فرم در ویژوال بیسیک کد زیر را می نویسیم :

Private Declare Function InitCommonControls Lib "comctl32.dll" () As Long

اکنون برای form در رویداد Initialize کد زیر را بنویسید ( رویداد Initialize  وقتی فراخوانی می شود که فرم ایجاد شود ) :

Private Sub Form_Initialize()
     InitCommonControls
End Sub

تا اینجا کارمان با فرم تمام شد و اکنون می توانید چند CommandButton , CheckBox , OptionButton , . . . را به فرم اضافه کنید . و پس از اتمام کار بر روی فرم آنرا  Compile کرده و بصورت Exe می سازیم .

 یک New Text Document را در همان پوشه ای که فایل exe وجود دارد می سازیم  و کدهای زیر را در آن کپی می کنیم و بعد آنراذخیره می کنیم . حالا باید نام و پسوند فایل را تغییر دهیم و مطابق الگوی مقابل عمل کنیم    EXE.MANIFEST.نام فایل exe 

برای اینکه نام و پسوند فایل را عوض کنیم نیاز به این داریم که نام و پسوند فایل را به طور کامل ببینیم برای این کار وارد  Control Panel شده و Folder Option را اجرا می کنیم بعد به قسمت View شده و تیک Hide Extentions For Known File Type را بر می داریم حالا همه فایلها را با نام و پسوند کامل مشاهده می کنیم و میتوانیم با استفاده از Rename (کلید F2) نام فایل را با توجه به متد بالا تغییر دهیم . مثلا اگر نام فایل exe بصورت ُSample.exe باشد نام فایل که با پسوند txt است را به Sample.exe.MANIFEST تغییر می دهیم .

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

کد مربوط به فایل  EXE.MANIFEST.نام فایل exe

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" processorArchitecture="*" version="6.0.0.0" name="mash"/>
<description>Enter your Description Here</description>
<dependency>

   <dependentAssembly>
      <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
           language="*"
           processorArchitecture="*"
         publicKeyToken="6595b64144ccf1df"
      />
   </dependentAssembly>
</dependency>
</assembly>

 

+ نوشته شده توسط پژمان رودخانه ای در پنجشنبه نوزدهم آذر 1383 و ساعت 0:13 |

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

برای اینکار اول باید از یه API استفاده کرد . تابع LoadKeyboardLayout رو از کتابخانه User32 به صورت زیر فراخوانی کنیم :

Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

بعد از برای فراخوانی تابع باید تابع را در رویداد مورد نظر فراخوانی کرد مثلا من تابع رو وقتی که فرم برنامه load شده فراخونی کردم :

LoadKeyboardLayout "00000429", 1 ' 00000429 :::::> For Farsi Keyboard

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

LoadKeyboardLayout "00000409", 1 ' 00000429 :::::> For ٍEnglish Keyboard

:: در ضمن اگر مایل به دیدن کد سایر زبانها هستید یه سری به آدرس زیر در رجیستری ویندوز بزنید .

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts

+ نوشته شده توسط پژمان رودخانه ای در چهارشنبه هجدهم آذر 1383 و ساعت 23:59 |
به زودی تو این وبلاگ می خوام کلی بهتون حال بدم از نوع اساسیش .
+ نوشته شده توسط پژمان رودخانه ای در چهارشنبه هجدهم آذر 1383 و ساعت 23:52 |