ورود

View Full Version : محدود کردن کاربر برای ورود اطلاعات در Edit



raha2006
جمعه 17 فروردین 1386, 00:40 صبح
سلام
من تازه کارم لطفا کمکم کنید
من می خوام در یک Edit م فقط کاربر بتونه ورودی های string داشته باشه و در Edit دیگرم فقط بتونه ورودی های عددی مانند نمره داشته باشه چه طوری می تونم این Edit ها رو محدود کنم .
ممنون می شم کمکم کنید:لبخندساده:

ghabil
جمعه 17 فروردین 1386, 01:20 صبح
بارها توضیح داده شده MaskEdit رو جستجو کنید

Hamid_PaK
جمعه 17 فروردین 1386, 06:09 صبح
راه دیگر این است که از ورودی Key استفاده کنید و آن را محدود کنید ...
در مورد اعداد زیاد بحث شده شما می توانید در مورد رشته نیز این عمل رو انجام دهید :


// Limited Edit input to some chars by onPressKey event ...
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['a'..'z', '!', '#']) then
Key := #0;
end;

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


function SetWindowLongEx(handle: HWND;gwl_type, new_long: Integer): Boolean;
var
w_style: Integer;
begin
Result := False;
w_style := GetWindowLong(handle, gwl_type);
if w_style = 0 then Exit;
w_style := w_style + new_long;
Result := SetWindowLong(handle, gwl_type, w_style) > 0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLongEx(Edit1.Handle, GWL_STYLE, +ES_NUMBER);
end;


یا حق ...

raha2006
جمعه 17 فروردین 1386, 19:44 عصر
سلام
از کمکتون ممنون لطف کردید
میشه در مورد این function و صدا کردن آن در رویداد creat فرم توضیح دهید

dkhatibi
شنبه 18 فروردین 1386, 10:41 صبح
سلام
از کمکتون ممنون لطف کردید
میشه در مورد این function و صدا کردن آن در رویداد creat فرم توضیح دهید

سوال را در تاپیک دیگری مطرح کنید.

Hamid_PaK
شنبه 18 فروردین 1386, 19:19 عصر
میشه در مورد این function و صدا کردن آن در رویداد creat فرم توضیح دهی


SetWindowLongEx(Handle of the Control, Type of the Style, Style Values);

Edit1 کنترل مورد نظر می باشد و ES_NUMBER مقدار استایل یک Edit ...
برای حذف یک استایل از منفی و برای اضافه کردن آن از مثبت استفاده کنید.


SetWindowLongEx(Edit1.Handle, GWL_STYLE, -ES_NUMBER);
SetWindowLongEx(Edit1.Handle, GWL_STYLE, +ES_NUMBER);


یا حق ...

raha2006
یک شنبه 19 فروردین 1386, 00:06 صبح
سلام
خیلی ممنون از جوابتون خیلی به من کمک کرد