PDA

View Full Version : پرش بین اجزای مختلف یک فرم به وسیله Enter؟؟؟؟؟؟؟



داوود
سه شنبه 17 خرداد 1384, 13:58 عصر
در یک فرم برای جهش بین اجزای مختلف از کلید Tab استفاده می کنیم . چگونه میتوان این کار را با Enter انجام داد.

Delphi Skyline
سه شنبه 17 خرداد 1384, 15:21 عصر
با setfocus

Tarrah
سه شنبه 17 خرداد 1384, 16:07 عصر
سلام
اگر این کار رو برای یک کنترل انجام بدین باید از کد زیر استفاده کنین:در onkeypress :

if (Key=#13) then
begin
Key:=#0;
postmessage((owner az Tform).Handle,WM_NEXTDLGCTL,0,0);
end;
:wise1:

دنیای دلفی
سه شنبه 17 خرداد 1384, 16:42 عصر
:موفق: :flower:

mahdi939
سه شنبه 17 خرداد 1384, 18:50 عصر
با سلام

taborder اشیاء را مرتب کنید سپس در رویداد onkeypress متن ذیل را بنویسید .





if key=#13 then
begin
selectnext(twincontrol(sender),true,true);
end

Mahdi_S_T
سه شنبه 17 خرداد 1384, 21:11 عصر
می تونی کد را فقط در فرم بنویسی که نیاز نباشد که در هر Edit این را در Onkeypress بنویسی . با این روش :

قسمت Key Prewive را true می کنیم و در Onkeypress فرم می نویسی :


if (Key=#13) then
begin
Key:=#0;
postmessage((owner az Tform).Handle,WM_NEXTDLGCTL,0,0);
end;

moradi_am
شنبه 21 خرداد 1384, 20:05 عصر
قبلا یک کامپوننت ساده برای همین منظور آپلود کرده ام میتوانید جستجو کنید .

Mahdi_S_T
شنبه 21 خرداد 1384, 20:29 عصر
مگه این کار هم کامپوننت لازم داره :strange:

maisam_ok
شنبه 21 خرداد 1384, 20:41 عصر
با سلام و عرض خسته نباشید به شما!
لطف کنید راهنمایی کنید که به چه صورت میتوان فیلتر را در دلفی بر اساس دو فیلد انجام داد
with table do
begin
open;
filter:='date= '+quotedstr(edit.text)+'and code >3';
end;

maisam_ok
شنبه 21 خرداد 1384, 20:44 عصر
جهت پرش بین چند اجزاء میتوان از رویداد keydown بصورت زیر استفاده کرد
if key=vk_Return then ...

szabeh
یک شنبه 29 آبان 1384, 23:12 عصر
می تونی کد را فقط در فرم بنویسی که نیاز نباشد که در هر Edit این را در Onkeypress بنویسی . با این روش :

قسمت Key Prewive را true می کنیم و در Onkeypress فرم می نویسی :


if (Key=#13) then
begin
Key:=#0;
postmessage((owner az Tform).Handle,WM_NEXTDLGCTL,0,0);
end;


با تشکر از دوستان و نظرات آنها کد مربوطه بدین صورت تصحیح می‌شود:

if (Key=#13) then
begin
Key:=#0;
postmessage((sender as Tform).Handle,WM_NEXTDLGCTL,0,0);
end;

MiRHaDi
دوشنبه 30 آبان 1384, 00:18 صبح
سلام
با اینکار هر بار اینتر بزنی بوق میزنه :)
به جای WM_NEXTDLGCTL هم میشه 40 زد
بای

mzjahromi
دوشنبه 30 آبان 1384, 14:05 عصر
اینو امتحان کنید هیچ مشکلی نداره:
KeyPreview فرمت رو True کن و تو OnkeyPress فرمت بذار


procedure TSelForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
Begin
ActiveControl:=FindNextControl(ActiveControl,True, True,False);
Key:=#0;
End;
end;