PDA

View Full Version : سوال: چطور در برنامه می توان متوجه فشار Ctrl+Z شد



kamran_14
دوشنبه 16 اسفند 1389, 21:08 عصر
سلام
چطور در برنامه می توان متوجه فشار Ctrl+Z شد

tdkhakpur
دوشنبه 16 اسفند 1389, 21:44 عصر
سلام
چطور در برنامه می توان متوجه فشار Ctrl+Z شد

یک راه اینه که از کامپوننت ApplicationEvent که استاندارد هست استفاده کنید.
یعنی داخل ApplicationEvents پارامتر Msg رو بررسی کنید که آیا مربوط به WM_HOTKEY هست یا نه.
اگر مثبت شد قدم بعدی بررسی Msg.lParam برای مشخص شدن کلید فشار داده شده.

mbshareat
سه شنبه 17 اسفند 1389, 00:47 صبح
سلام
همین که فرمودین رومیشه به صورت کد بذارین.
من این شرط رو گذاشتم کار نکرد :
If Msg=WM_HOTKEY Then

tdkhakpur
سه شنبه 17 اسفند 1389, 01:14 صبح
من این شرط رو گذاشتم کار نکرد :

درسته قسمت رجیستر فراموش شده باید hotkey رو رجیستر کنید داخل کد زیر برای مشخصه - عدد 0 قرار داده شده شما میتونید از atom برای دریافت عدد خصوص یا یکتا استفاده کنید.


procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean);
begin
if Msg.message= WM_HOTKEY then
if LOWORD(Msg.lParam)=MOD_CONTROL then
if HIWORD(Msg.lParam)=ord('Z') then
ShowMessage('hi, i am control + z key');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey( Handle, 0, MOD_CONTROL, ord('Z'));
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle, 0);
end;