PDA

View Full Version : سوال: دستور val



reza_66
سه شنبه 17 اسفند 1389, 18:31 عصر
سلام

دوستان کسی دستور کامل val رو داره -

من می خوام داخل ادیتم فقط عدد ثبت بشه و حرف نگیره-خودم دستورشو دارم ولی درست کار نمی کنه

اگه اول یک عدد وارد بشه نگه می داره و بعدش اگه حرف هو تایپ بشه قبول می کنه که نمی خوام اینطوری باشه

می خوام اگه عدد بود نگهش داره و اگر حرف بود همون کارکتر حرف پاک بشه

var i , code:integer
begin
for a:=0 to length (edit1.text) do
val (edit1.text,i,code

if code <>0 then
begin

edit1.clear

end
end

Mask
سه شنبه 17 اسفند 1389, 19:18 عصر
یه چند 100 باری در موردش بحث شده . لطفا سرچ بفرمایید.
http://barnamenevis.org/showthread.php?269943-%D9%88%D8%A7%D8%B1%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-%D8%B9%D8%AF%D8%AF%DB%8C-%D8%AF%D8%B1-%DB%8C%DA%A9-EditBox

M_Maskout
پنج شنبه 26 اسفند 1389, 18:44 عصر
سلام
کد زیر جواب سوال شماست.


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key <> #8) and (Pos(Key, '0123456789') = 0) then Key := #0;
end;


توجه کنید اگر شرط "Key <> #8" رو حذف کنید، کلید Back Space از کار می‌افته.

سعید صابری
پنج شنبه 26 اسفند 1389, 19:17 عصر
در قسمت خصوصیات Edit گزینه Numbersonly را برابر با True قرار بده. دلفی 2009 به بعد