PDA

View Full Version : دو شرط در یک ادیت



mohssen_mz
دوشنبه 11 دی 1385, 02:28 صبح
سلام!
من میخوام روی یه ادیت 2 تا کوری را زمانی اجرا کنم که :
1- وقتی تایپ بصورت متنی بود کوری اول
2- اگه عددی بود کوری دوم

مشکل اینجا است وقتی میخوای تشخیص بدی در ادیت عدد وارد شده اونو بصورت رشته میشناسه .با متد های خود ادیت keypress,keydown,... کار کردم ولی نتیجه نگرفتم
حالا راه حل چیه؟
از لطف شما متشکریم

dkhatibi
دوشنبه 11 دی 1385, 06:41 صبح
اشکال نداره !
می تونی در رویدادها کد کلید وارد شده را چک کنی (کد اسکی) اگر در هر بار فشردن کلید عدد وارد شده؛ پس ... وگرنه هم که ....

mzjahromi
دوشنبه 11 دی 1385, 06:45 صبح
اگر مشکلتون فقط اینه که شناسائی کنید متن داخل Edit هست یا عدد دو تا راه دارید
یه راه ساده


try
strToInt(Edit1.Text);
عدد است
Except
عدد نیست
end;

یه راه دیگه هم اینه که خودتون متن رو پیمایش کنید ببینید کاراکتر غیر عددی داخلش هست یا نه



For i:=1 to Length(Edit1.Text) do
if Edit1[i]<'0' or Edit1[i]>'9' then
عدد نیست

m-khorsandi
دوشنبه 11 دی 1385, 07:34 صبح
از Val (http://www.delphibasics.co.uk/RTL.asp?Name=Val) هم میتونی استفاده کنی.
این پروسیجر سعی میکنه که یک رشته/متغیر رشته ای رو که تماماً شامل عدد هست به عدد تبدیل کنه و
اگر در این رشته کاراکتری به غیر از 0-9 باشه ، موقعیت اون کاراکتر رو به عنوان کد خطا بر میگردونه.