PDA

View Full Version : تشخیص فشره شدن کلیدهای ترکیبی



hadi55
شنبه 11 تیر 1384, 21:48 عصر
سلام دوستان
تویه کنترلی مثل Edit چطوری میشه ترکیب کلیدهای مثلا Shift و Tab رو توی رویدادهای مربوط به صفحه کلید تشخیص داد.

مهدی کرامتی
شنبه 11 تیر 1384, 22:44 عصر
برای Shift و Alt و ... :

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssShift in Shift then Form1.Caption := 'Shift';
end;

Ali Najafian
یک شنبه 12 تیر 1384, 01:01 صبح
برای سایر کلیدها چی ؟؟؟

vcldeveloper
یک شنبه 12 تیر 1384, 02:24 صبح
برای سایر کلیدها چی ؟؟؟


ssShift The Shift key is held down.
ssAlt The Alt key is held down.
ssCtrl The Ctrl key is held down.
ssLeft The left mouse button is held down.
ssRight The right mouse button is held down.
ssMiddle The middle mouse button is held down.
ssDouble The mouse was double-clicked.

hadi55
یک شنبه 12 تیر 1384, 12:09 عصر
برای Shift و Alt و ... :

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssShift in Shift then Form1.Caption := 'Shift';
end;

رویدادهای KeyUp و KeyDown کلید Tab رو نمیگیرند . برای این مسئله باید چکار کرد؟

nasr
یک شنبه 01 اردیبهشت 1387, 10:47 صبح
سلام
من میخوام وقتی کاربر روی Panel راست کلیک کرد و در همان حال Ctrl , Alt , Shift و همچنین کلید A را فشرده پیامی نشان دهد
یعنی Ctrl , Alt , Shift را همراه کلید A گرفته و روی Panel کلیک راست می کنه.
چکار کنم؟

این کد را نوشته ام ولی روی حرف A مشکل دارم



procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (ssShift in Shift) and
(ssalt in Shift) and
(ssctrl in Shift) and
(Button = mbRight) then
ShowMessage('test');

B-Vedadian
یک شنبه 01 اردیبهشت 1387, 10:57 صبح
راه مستقیمی وجود نداره، تو رویداد OnKeyDown اگه A فشرده شده بود، یک flag را ست کنید و در OnKeyUp اونو پاک کنید.

nasr
چهارشنبه 04 اردیبهشت 1387, 10:36 صبح
B-Vedadian (http://barnamenevis.org/forum/member.php?u=4189) ممنون

از دوستان کسی راه دیگه ای به ذهنش نمی رسه؟