PDA

View Full Version : کد اسکی کلیدها



free
دوشنبه 12 دی 1384, 12:50 عصر
چطور می تونم کد اسکی کلیدی را که از صفحه کلید فشار داده میشود را بیابم.آیا تابعی دارد؟ مثلا می دانم که کلید اینتر = #13

free
دوشنبه 12 دی 1384, 13:19 عصر
اینو پیدا کردم
http://www.barnamenevis.org/forum/showthread.php?t=10932&highlight=%DF%CF+%C7%D3%DF%ED
ولی من کد اسکی arrow key هارو می خوام

سید مسعود موحد
دوشنبه 12 دی 1384, 15:30 عصر
تو Help خود Delphi‌میتوانی کد تمام کلیدها را پیدا کنی

Naficy
دوشنبه 12 دی 1384, 15:35 عصر
arrow key ها کد اسکی تکی ندارند.
اگر سوالتان در حیطه دلفی است، به جای OnKeyPress از OnKeyDown استفاده کنید.

ضمنا شما احتیاجی به طرح چنین سوالی ندارید. خیلی ساده می توانید یک کد درون OnKeyPress بنویسید که کد اسکی کاراکتر زده شده را مثلا در یک لیبل نمایش دهد. سپس برنامه را اجرا کنید و خودتان امتحان کنید.

babak869
دوشنبه 12 دی 1384, 21:55 عصر
ازین برنامه استفاده کنید امیدوارم که به کارتون بیاد
موفق باشید

free
سه شنبه 13 دی 1384, 08:50 صبح
ممنون دوستان
مثلا فرض کنید من یه چند تا edit دارم که می خوام با arrow keyها هم به آنها دسترسی داشته باشم.گفتید که arrow key کد اسکی تکی ندارد و از on key down استفاده کنم.باید چه کدی رو تو این قسمت بنویسم؟

free
سه شنبه 13 دی 1384, 11:52 صبح
خودم پیداش کردم از طریق دوستان قدیمی
اینم جواب برای افرادی مثل من که این سوال را دارند:
تو onkeydown مربوطه می نویسیم:
if key=vk_down then
edit2.setfocuse
تو key مقادیر vk_down,vk_left,vk_right,vk_up می تونه قرار بگیره
در ضمن از دوستان قدیمی ممنونم

free
چهارشنبه 14 دی 1384, 11:38 صبح
حالا یه سوال دیگه:
در مورد کلیدهای دیگر چکار باید کرد مثلا اگر بخوام با زدن F1 کار خاصی انجام بشه یا با کلید ALT+A یه فرم نمایش داده بشه؟

Naficy
جمعه 16 دی 1384, 00:46 صبح
لطفا یک سری به راهنمای دلفی ذیل onkeydown بزنید. و روی لینک Virtual Key Codes کلیک کنید.

ضمنا برای کلیدهای ترکیبی (مثل Alt+A) باید مقدار پارامتر shift ارسالی به رویداد onkeydown را هم، علاوه بر مقدار key، کنترل کنید.

free
شنبه 17 دی 1384, 11:05 صبح
ممنون جناب Naficy

لطفا برای کلیدهای ترکیبی بیشتر راهنماییم کنید. مثلا برای ALT+A فرم شماره2 نمایش داده بشه. چطوری این کارو انجام بدم؟ یعنی کد مورد نظر را در onkeydown مربوطه به فرم شماره 1 بنویسم و از اونجا با زدن کلید ترکیبی مورد نظر فر شماره 2 را نمایش بدم؟ اگه اینطوره چه کدی را بنویسم؟

Naficy
شنبه 17 دی 1384, 12:09 عصر
برای مثال:


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=Ord('A')) and (ssAlt in Shift) then
Form2.Show;
end;

free
دوشنبه 19 دی 1384, 08:47 صبح
خیلی ممنون
راهنماییهاتون خیلی به دردم خورد.