PDA

View Full Version : تعريف كليد ميانبر براي application



bmanfy
پنج شنبه 27 خرداد 1389, 09:15 صبح
سلام دوستان.
چطور ميشه در يك برنامه يك سري كلايد ها ي ميانبر تعريف كرد كه در كل برنامه قابل شناسايي باشه .
مثلا من ميخوام زماني كه كاربر كليد ctrl+c رو فشرد به عنوان مثلا ماشين حساب باز بشه.
و تعريف اين كليد در تمام برنامه يه كار خسته كننده است .
چه طور ميشه يك بار و براي هميشه تعريفش كرد؟

ممنون .

holyspirit
پنج شنبه 27 خرداد 1389, 10:04 صبح
سلام! اگه منظورتون رو درست متوجه شده باشم در تب استاندارد و از کامپوننت ActionList .
موفق باشی!

Felony
پنج شنبه 27 خرداد 1389, 12:47 عصر
کلمه هوک رو جست و جو کنید .

Mahmood_M
پنج شنبه 27 خرداد 1389, 13:10 عصر
خاصیت KeyPreview فرم رو True کنید و در رویداد OnKeyDown مربوط به فرم کدتون رو بنویسید ، البته برای همه فرمها باید این کار رو بکنید ...
راه دیگش اینه که یه کامپوننت ApplicationEvents روی فرم بزارید و از رویداد OnMessage اون استفاده کنید ، یعنی پیغام ارسالی به برنامه رو چک کنید ، اگر کلید مورد نظر بود ، عملیاتتون رو انجام بدید ...
راه دیگه استفاده از رویداد OnShortCut مربوط به کامپوننت ApplicationEvents هست :
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
var Handled: Boolean);
begin
if (Msg.CharCode = 67) and (GetKeyState(VK_CONTROL) < 0) then
begin
ShowMessage('Ctrl + C Pressed ...');
Handled := True;
end;
end;

و راه دیگش هم اینه که یک HotKey در برنامتون تعریف کنید که خوب کمی دردسرش بیشتره ...

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

h_mohamadi
پنج شنبه 27 خرداد 1389, 13:14 عصر
سلام! اگه منظورتون رو درست متوجه شده باشم در تب استاندارد و از کامپوننت ActionList .
موفق باشی!


این که شما فرموده اید که انجام نمی شود چون وقتی در یک فرم می گذاریم در فرم های دیگر با زدن کلید مینابر دستور اجرا نمی شود


آیا راه بهتری سراغ دارید؟؟؟؟؟

Felony
شنبه 29 خرداد 1389, 13:40 عصر
کسی به ما کمک نمی کند؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!

در پست 3 و 4 راه حل ارائه شده .

bmanfy
یک شنبه 06 تیر 1389, 09:52 صبح
mahmood_n ممنون . كدي كه گفتيد استفاده كردم و درست هم جواب داد.
در مورد اين hotKey كه گفتيد ميشه يه كمي توضيح بدين؟

Felony
یک شنبه 06 تیر 1389, 10:12 صبح
در مورد اين hotKey كه گفتيد ميشه يه كمي توضيح بدين؟
در مورد تابع RegisterHotKey تحقیق کنید .