View Full Version : کلید اینتر به جای کلید تب
علی رضائی
سه شنبه 31 اردیبهشت 1387, 07:27 صبح
من یک فرم دارم که ده عدد ادیت باکس داره، می خوام با اینتر کردن به ادیت باکسهای بعدی برم یعنی بجای اینکه با کلید تب برم با کلید اینتر برم.
h_mohamadi
سه شنبه 31 اردیبهشت 1387, 07:46 صبح
سلام باید در کی پرز هر ادیت بنویسی اگر کلید اینتر زده شد برو به ادیت بعد
if key=#13 then edit2.setfocuse
Touska
سه شنبه 31 اردیبهشت 1387, 08:00 صبح
میتونی در یکی از OnKeyPress ها بنویسی و بقیه از Event این یکی استفاده کنن.
این کد هم بد نیست ، خودش اتوماتیک عمل می کنه.
IF Key = Char(VK_RETURN) Then
Begin
Key := #0;
SelectNext(TCustomEdit(Sender),True,True);
End;
delphiprog3000
سه شنبه 31 اردیبهشت 1387, 09:13 صبح
سلام.
با اجازه مصطفی عزیز.
اینم یه کد شبیه که در همان رویداد edit نوشته میشود.
برای برگردان مکان نما پارامتر دوم را false نمایید.
if (key=#13) then
SelectNext(activecontrol,true,true);
موفق باشید....................
echoes
سه شنبه 31 اردیبهشت 1387, 12:32 عصر
همچنین میتونی کلید tab رو شبیه سازی کنی
توی ایونت onkeypress بنویس
if key=#13 then
begin
key:=#0;
perform(CM_DialogeKey,VK_TAB,0);
end;
حمیدرضاصادقیان
سه شنبه 31 اردیبهشت 1387, 16:07 عصر
سلام. نکته اخر اینه که اگر شما این رویداد رو در onekydown فرم نوشتی حتما باید keypreview رو true کنی در غیر اینصورت کد شما عمل نخواهد کرد.
aradsystem
شنبه 12 بهمن 1387, 18:57 عصر
سلام به همه دوستان.
من یه برنامه نوشتم حدود 95 فرم داره میخوام کلید اینتر رو برای همه ادیت های فرم ها درست کنم. یعنی باید همه ادیت های فرم هارو براشون کد اینتر بنویسم؟ اینجئری که یه هفته وقت میبره. راه راحت تری هست؟
aradsystem
یک شنبه 13 بهمن 1387, 09:50 صبح
مشکل حل شد.
accpascal
یک شنبه 13 بهمن 1387, 18:47 عصر
مشکل حل شد.
ممکنه بفرمایید چگونه حل شد تا ماهم یاد بگیریم
Mask
پنج شنبه 17 بهمن 1387, 08:49 صبح
همه Edit ها رو انتخاب کن و روی سربرگ event برو و روی خاصیت OnKeyPress دابل کلیک کن و دستور زیر را بنویس:
If Key = #13 Then Begin
If HiWord(GetKeyState(VK_SHIFT)) <> 0 then
SelectNext(Sender as TWinControl,False,True)
else
SelectNext(Sender as TWinControl,True,True);
Key := #0
end;
و اگه بخوای به باتن نرود خاصیت TabStop رو False بکن و TabIndex رو صفر قرار بده
سيد مجتبي هاشمي
یک شنبه 20 بهمن 1387, 08:20 صبح
من یک فرم دارم که ده عدد ادیت باکس داره، می خوام با اینتر کردن به ادیت باکسهای بعدی برم یعنی بجای اینکه با کلید تب برم با کلید اینتر برم.
procedure TForm7.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = char (vk_return) then
begin
Edit2.Enable.True;
key := #0 ;
postmessage(handle,wm_nextdlgctl,0,0) ;
end;
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.