ورود

View Full Version : تبدیل کد کلید tab به کلید enter در زمان اجرای برنامه



mina_148m
یک شنبه 18 آذر 1386, 00:20 صبح
سلام دوستان
من می خوان زمانی که در حال اجرای برنامه هستم با زدن کلید enter مانند کلید tab کار منه؟
می شه منو کمک کنید:ناراحت::ناراحت:

Cave_Man
یک شنبه 18 آذر 1386, 00:58 صبح
کد زیر رو در رویداد OnKeyPress بزار


if key = #13 then
begin
keybd_event(VK_TAB, 1, 0, 0);
key := #0;
end;

Bahmany
دوشنبه 19 آذر 1386, 07:45 صبح
من می خوان زمانی که در حال اجرای برنامه هستم با زدن کلید enter مانند کلید tab کار منه؟1- لطفا درخواستتون رو در تالار مخصوص خود قرار دهید
2- گزینه Search نیز برای درخواست ایجاد نکردن تاپیک های تکراری وجود داره.

Touska
دوشنبه 19 آذر 1386, 18:31 عصر
اینو با یکم دستکاری از JVC برداشتم :

mina_148m
چهارشنبه 21 آذر 1386, 01:08 صبح
:اشتباه:با سلام به دوستان و تشکر بسیار بابت کمکشون
ولی خدمت دوستان باید عرض کنم که من این راه هارو امتحان کردم ولی جواب نداد
حتی قبلنم از خدم دستی برای تک تک ابزارهام در رویداد onkeypress اونها activecontrol هارئ مشخص کرده بودم و لی بازم جواب نداده بود
من میخوام زمانی که برنامه رو احرا کردم مثله وقتی که tab میزنم و روی ابزارها حرکت می کنه \وقتی enter میزنم اینکارو بکنه؟
من باید پس چیکار کنم

farhad110
چهارشنبه 21 آذر 1386, 07:10 صبح
با سلام. دوست عزیز کدی که در پست #2 گذاشته شده مشکلی نداره. شما باید Tab Order ها رو در بین کنترلهایی که میخواید این عمل بین اونها اعمال بشه تنظیم کنید.
برای روش دستی هم به جای activecontrol از SetFocus استفاده کنید.

SYNDROME
پنج شنبه 22 آذر 1386, 09:08 صبح
کدی که دوستمان گفت را در OnkeyPress فرمت بنویس.


if key = #13 then
begin
keybd_event(VK_TAB, 1, 0, 0);
key := #0;
end;

سپس خاصیت KeyPrivew فرم را True کنید.
موفق باشید

mina_148m
پنج شنبه 22 آذر 1386, 23:21 عصر
با سلام و تشکر بابت کمکتان
باور کنید من اینکارو هم کردم keypreview هم true کردم

ولی وقتی اینتر میزنم کارنمی کنه
یعنی شما میگید اگه این کارو فقط برای فرم بکنم روی همه ابزارهای روی فرم اعمال می شه؟
پس برا من این دستورها چرا کار نمی کنه؟

SYNDROME
جمعه 23 آذر 1386, 07:21 صبح
با سلام و تشکر بابت کمکتان
باور کنید من اینکارو هم کردم keypreview هم true کردم
ولی وقتی اینتر میزنم کارنمی کنه
یعنی شما میگید اگه این کارو فقط برای فرم بکنم روی همه ابزارهای روی فرم اعمال می شه؟
پس برا من این دستورها چرا کار نمی کنه؟
حالا به جای دستور بالا این دستور ار در KeyPress فرمت بنویس.


IF (Key = #13) Then
Begin
Key := #0;
SendMessage(Handle,WM_NEXTDLGCTL,0,0);
End;

اگر باز هم کار نکرد در IF بالا یک Break Point بگذارید و ببینید اصلاً کد فوق اجرا می شود.
اگر هم خواستی در یک فرم جداگانه اعمال کن که اگر کار نکرد برنامه را در اینجا قرار بده.
موفق باشید

Cave_Man
جمعه 23 آذر 1386, 12:06 عصر
پس برا من این دستورها چرا کار نمی کنه؟
اگر روی فرم Button داری و Default اون رو True کنی دیگه نمیتونی با کلید Enter چنین انتظاری داشته باشی
برنامه نمونه

mina_148m
شنبه 24 آذر 1386, 12:25 عصر
سلام
بسایر ممنون از کمکتون
میدونید من کدی د قسمت 2 بود را دررویداد onkeypress اولین قسمت برنامه ام که می خوام اطلاعات وارد کنم یعنی edit نوشتم درست کار کرد ولی در این رویداد فرم کار نکرد
عوضش باید دوبار اینتر بزنم می شه اینه کاریش کرد؟
بدلیله اینکه حجم برنامم زیاده نتونستن بفرستم
بازم ممنون

Cave_Man
شنبه 24 آذر 1386, 12:41 عصر
شما باید اون رو در رویدار Control ها ی فرم بزارید نه خود Form
شما میتونید فقط توی رویداد یکی از Edit ها بنویسید و رویداد بقیه کنترل ها رو به اون تخصیص بدید.مثل همون کاری که توی مثال کردم.با این کار لازم نیست برای همه کنترل ها این کد رو تکرار کنید و فقط یه بار این کد رو مینویسید