PDA

View Full Version : سوال: فشردن Enter و انجام کار کلید TAB



کامروا
یک شنبه 24 اردیبهشت 1391, 09:27 صبح
سلام به دوستان

فرض کنید 10 تا ادیت باکس دارم که TabOrder هاشون هم از 0 تا 9 هست.بطور پیش فرض با زدن کلید Tab ، با توجه به TabOrder، مکان نما به ادیت بعدی میره.
حالا میخوام که وقتی Enter رو میزنم کار کلید Tab رو انجام بده و با توجه به TabOrder، به ادیت بعدی فوکاس شه.

پ.ن: نمیخوام با استفاده از شرط توی OnKeyDown بنوسیم.
تشکر

tiphooo
یک شنبه 24 اردیبهشت 1391, 13:03 عصر
توی KeyDown فرم اصلی کد زیر را بنویسید
if (Key = VK_RETURN) and (Shift = []) then
Perform (CM_DialogKey, VK_TAB, 0);
و فقط باید TabOrder ها را تنظیم کنید
خاصیت KeyPreview فرم را هم True کنید

mbshareat
یک شنبه 24 اردیبهشت 1391, 20:01 عصر
برای جلوگیری از بوق زدن هم این کد:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
Key:=#0;
end;

سعید صابری
یک شنبه 24 اردیبهشت 1391, 20:31 عصر
راه راحت ترش استفاده از کامپوننت EnterAsTab از مجموعه رایگان JVCL است.بدون نیاز به کدنویسی

shedayat
یک شنبه 24 اردیبهشت 1391, 22:41 عصر
برای جلوگیری از بوق زدن هم این کد:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
Key:=#0;
end;


ولی با انجام این کار دیگه نمی شه تو تکست ها یا جاهای دیگه چیزی نوشت. چون هر کد اسکی ای که دریافت می کنه اونو برابر صفر قرار می ده.
راه حل دیگه ای برای جلوگیری از بوق زدن به نظرتون نمی رسه؟

کامروا
یک شنبه 24 اردیبهشت 1391, 23:09 عصر
ولی با انجام این کار دیگه نمی شه تو تکست ها یا جاهای دیگه چیزی نوشت. چون هر کد اسکی ای که دریافت می کنه اونو برابر صفر قرار می ده.
راه حل دیگه ای برای جلوگیری از بوق زدن به نظرتون نمی رسه؟
بایدقبلش شرط بگذارید.

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then
Key:=#0;
end;

mbshareat
یک شنبه 24 اردیبهشت 1391, 23:48 عصر
If (ActiveControl is TEdit)
And (Key=#13) Then
Key:=#0;