PDA

View Full Version : کنترل کیبور در برنامه



mi_9469
شنبه 14 مرداد 1385, 16:51 عصر
در یک برنامه من می خوام هر جا حرف مثلا "a" زده شد بجای آن حرف "r" وارد شود.لطفا مرا راهنمایی کنید.

vcldeveloper
یک شنبه 15 مرداد 1385, 08:28 صبح
یک راهش اینه که خصوصیت KeyPreview از فرم یا فرم هایی را که می خوای این اتفاق توشون بیافته را True کنی، و در رویداد OnKeyPress کد مربوطه را بنویسی. چیزی مثل این کد:


if Key = 'a' then
Key := 'r';

یک راه حل کلی تر هم اینه که از یک Hook در برنامه خودت استفاده کنی. برای آشنایی بیشتر با Hook می تونی کلمه Hook را در سایت جستجو کنی، و یا به مطالب مربوط به Hook در MSDN مراجعه کنی.

mi_9469
یک شنبه 15 مرداد 1385, 08:49 صبح
راه اول که عملی نیست .چون نیاز هست مثلا در onkeypress تمام editbox این دستور را اجرا نمود.ولی راه دوم چندین بار جستجو کرده ام .اگر براتون امکان داده با یه مثال ساده کدشو برام بفرستید متشکرم...

vcldeveloper
یک شنبه 15 مرداد 1385, 09:43 صبح
وقتی KeyPreview یک فرم را True می کنید، نیازی به پیاده سازی OnKeyPress هر یک از کنترل های اون فرم نیست؛ فقط کافیه OnKeyPress همان فرم پیاده سازی بشه.


ولی راه دوم چندین بار جستجو کرده ام .اگر براتون امکان داده با یه مثال ساده کدشو برام بفرستید

http://delphi.about.com/od/vclusing/l/aa101000a.htm
http://www.delphitricks.com/source-code/windows/install_a_keyboard_hook.html