سلام دوستان , امروز می خوام یه مطلب کاربردی تو 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 : آرگومانی است که کد اسکی کلیدی از صفحه کلید را که فشرده شده بر می گرداند.
#include <stdlib.h>
int main(void)
{
clrscr();
textcolor(12);
cprintf("The function DELLINE deletes the line containing the\r\n");
cprintf("cursor and moves all lines below it one line up.\r\n");
cprintf("DELLINE operates within the currently active text\r\n");
cprintf("window. Press any key to continue . . .");
gotoxy(1,2); /* Move the cursor to the second line and first column */ getch();
delline();
getch();
return 0;
}
4 . textmode : این تابع نوع نمایش text در صفحه نمایش را کنترل می کند . مقادیر قابل پذیرش این تابع را در جدول زیر مشاهده می کنید .
ثابت | مقدار عددی | نوع حالت | |
LASTMODE | -1 | Previous text mode | 40 columns |
BW40 | 0 | Black and white | 40 columns |
C40 | 1 | Color | 80 columns |
BW80 | 2 | Black and white | 80 columns |
C80 | 3 | Color | 80 columns |
MONO | 7 | Monochrome | 43 columns |
C4350 | 64 | EGA and VGA | 50 columns |
:: چگونگی عملکرد این تابع را میتوانید در مثال زیر ببینید :
#include <stdlib.h>
{
clrscr();
textmode(BW40);
textcolor(12);
cprintf("Textmode >>>> (BW40)");
getch();
textmode(BW80);
textcolor(10);
cprintf("Textmode >>>> (BW80)");
getch();
textmode(C40);
textcolor(11);
cprintf("Textmode >>>> (C40)");
getch();
textmode(MONO);
textcolor(14);
cprintf("Textmode >>>> (MONO)");
getch();
return 0;
}
for (i = 0;i < 80;i ++)
{
gotoxy (wherex(),21);
cprintf ("کاراکتر مورد نظر");
delay (50);
}