PDA

View Full Version : روش تشخیص اعداد وارد شده ؟



Majid.Ebru
پنج شنبه 06 خرداد 1389, 08:39 صبح
سلام
سرچ کردم اما پیدا نکردم ....
چه طوری میتونم تشخیص بدم که عدد وارد شده از اعداد سمت راست کیبورد هست و یا از اعداد ردیف بالایی کیبورد؟؟
با تشکر

hamid-nic
پنج شنبه 06 خرداد 1389, 10:18 صبح
سلام
احتمالا از طریق کد اسکی وارد شده قابل تشخیص است .
امتحان کنید ببینید جواب میده یا نه ؟
موفق باشید .

جواد ملاولی
پنج شنبه 06 خرداد 1389, 10:21 صبح
کد اسکی شون با هم فرق می کنه. با تابع ord کد اسکی شون رو بدست بیار.

hossein_h62
پنج شنبه 06 خرداد 1389, 10:25 صبح
سلام
همونطور که دوستان گفتند با تابع Ord کد اسکی شون رو دربیار و مقایسه کن.
کد اسکی اعداد بالای صفحه کلید از 48 شروع میشه وتا 57 هستش ولی کد اسکی اعداد NumPad از 96 شروع وتا 105 هستش.یعنی اعداد منتاظر باهم 48 تا فرق دارن!

Majid.Ebru
جمعه 07 خرداد 1389, 22:37 عصر
سلام
از Ord چه طوری استفاده کنم ?

procedure TForm1.edit1KeyPress(Sender: TObject; var Key: Char);
begin
label1.Caption:=IntToStr(Ord(key )) ;
end;

من این طوری استفاده کردم اما جواب ها یکسان بود ؟
جواب ها از 49 شروع میشه تا 57 ؟ هم از بالا و هم از اعداد سمت راست؟
کمک...

Mahmood_M
جمعه 07 خرداد 1389, 23:06 عصر
نباید در رویداد OnKeyPress این کار رو انجام بدید ، در رویداد OnKeyPress کلید زده شده به صورت یک کارکتر دریافت میشه و مسلما کارکتری که از طریق NumPad ارسال میشه با کارکتری که از طریق دکمه های بالای کیبرد ارسال میشه یکسان هست و کد یکسانی هم براشون ایجاد میشه ...
باید از رویداد OnKeyDown استفاده کنید ، در این رویداد کلید ورودی به صورت مقداری از نوع Word دریافت میشه و برای همه ی کلیدهای کیبرد کدهای مجزا تولید میکنه و وابسته به کارکتر هم نیست ...

موفق باشید ...

Majid.Ebru
یک شنبه 09 خرداد 1389, 14:06 عصر
نباید در رویداد OnKeyPress این کار رو انجام بدید ، در رویداد OnKeyPress کلید زده شده به صورت یک کارکتر دریافت میشه و مسلما کارکتری که از طریق NumPad ارسال میشه با کارکتری که از طریق دکمه های بالای کیبرد ارسال میشه یکسان هست و کد یکسانی هم براشون ایجاد میشه ...
باید از رویداد OnKeyDown استفاده کنید ، در این رویداد کلید ورودی به صورت مقداری از نوع Word دریافت میشه و برای همه ی کلیدهای کیبرد کدهای مجزا تولید میکنه و وابسته به کارکتر هم نیست ...

موفق باشید ...

سلام
ممنون
حق با شما بود و کار کرد.
با تشکر