PDA

View Full Version : تعداد کاراکترهای TextBox



مجتبی جوادی
جمعه 07 اردیبهشت 1386, 23:04 عصر
دوستان سلام
من دو TextBox دارم و می خواهم در یکی دو و در دیگری فقط 4 کاراکتر عددی قرار گیرد بطوریکه در باکس اول اعداد بین 1 تا 50 و در باکس دوم اعداد بین 1000 تا 1100 قرار گیرد و اینکه در باکس اول وقتی تعداد کاراکترها 2 شد و بین رنج تعریف شده بود بطور اتوماتیک به باکس دو پرش نماید و در غیر اینصوت با یک پیغام اعلام کند عدد درج شده خارج از رنج میباشد .
با تشکر

SoftDevCo
شنبه 08 اردیبهشت 1386, 00:49 صبح
توی رویداد OnChange اولی این کد رو بنویس:
-----------------------------------------------------

if (Inttostr(TextBox1.Text)>=1) and (Inttostr(TextBox1.Text)<=50) and (Length(TextBox1.Text)=2) then TextBox2.SetFocus;
-----------------------------------------------------

توی رویداد OnExit اولی این کد رو بنویس:
-----------------------------------------------------

if (Inttostr(TextBox1.Text)<1) and (Inttostr(TextBox1.Text)>=50) then ShowMessage('Error');
-----------------------------------------------------

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

mzjahromi
شنبه 08 اردیبهشت 1386, 06:46 صبح
میتونی هم از SpinEdit استفاده کنی. اون فقط عدد رو میگیره و به راحتی کنترلشون میکنه و مشکلات MaskEdit رو هم نداره

مجتبی صادقپور
شنبه 08 اردیبهشت 1386, 14:05 عصر
اول اینکه خاصیت maxlength مربوط به edit اولی رو 2 و edit دومی رو 4 کن در اینصورت کاربر نمیتونه توی edit اولی بیشتر از 2 کاراکتر و در edit دومی بیشتر از 4 کاراکتر وارد کنه و نیازی به کنترل نداره
اما مساله اینجا است که نمیشه اتوماتیک بهedit دوم بره چون ممکنه کاربر یک عدد یک رقمی وارد کنه و شما گفتی اگه دورقمی وارد کرد و بین 1..50 بود بره به edit دوم مگر اینکه اعداد تک رقمی رو با یک صفر قبلش وارد کنه:01،02 و.... دراین صورت توی رویداد onchange مربوط به edit اول مینویسی:
if (length(edit1.text)=2) then
begin
if ((strtoint(edit1.text)>1) and (strtoint(edit1.text)<50)) then
edit2.setfocus
else
('showmessage('the number is out of range
end

SYNDROME
شنبه 08 اردیبهشت 1386, 18:27 عصر
با سلام
روشهایی که دوستان گفتند کاملا درست است ولی کاربر اول خطا می کند و سپس پیغام را می بیند.
اگر شما از KeyPress استفاده کنید می توانید قبل از ورود داده آن را کنترل کرده و از ورود خطا جلوگیری کنید.

zman123456
یک شنبه 09 اردیبهشت 1386, 12:46 عصر
سلام
برای حل مشکل دوست عزیز می شود مراحل را اینگونه بیان کرد:
1- کنترل ورود فقط اعداد
2- کنترل تعداد ارقام
3- کنترل مقدار وارد شده عددی
من کدی که نیاز هست رو با عکس فرم می فریستم ولی باز مشکل اینجاست که اگر کاربر به جای وارد کردن عدد 09 مقدار 9 را بزند برای سیستم قابل شناسایی نیست.
ولی قابل حل است.

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) = 2 then
Edit2.SetFocus;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if (Edit1.Text <> '') And (Length(Edit1.Text) = 2)then
Begin
if (strtoint(Edit1.Text)>50) then
begin
Showmessage('error');
Edit1.SetFocus;
end;
end;
end;
کنترل ورود عدد که ساده می باشد.