PDA

View Full Version : سوال: مشکل با کلید اینتر



ahmadbh
سه شنبه 03 مرداد 1391, 10:35 صبح
با سلام
موقعی که در فرم ثبت مشخصات کلید اینتر را میزنم فرم بسته می شود
چیکار کنم که درست شود

hossein_h62
سه شنبه 03 مرداد 1391, 11:35 صبح
با سلام
موقعی که در فرم ثبت مشخصات کلید اینتر را میزنم فرم بسته می شود
چیکار کنم که درست شود
سلام
خب توی این فرم ثبت مشخصات چکار کردین ؟!!!!!! لطفا سوالتون رو واضح بگین.
چک کنید روی کدوم شیء اینتر میزنی که فرم بسته میشه، کد مربوطه رو کنترل کنید یا برای رفع مشکل اینجا بزارید .

ahmadbh
چهارشنبه 04 مرداد 1391, 10:38 صبح
موقعی که در ادیت مشخصات را وارد میکنم با زدن کلید اینتر فرم بسته می شود در صورتی که میخواهم با زدن کلید اینتر یا تب به ادیت بعدی بروم

عقاب سیاه
پنج شنبه 05 مرداد 1391, 20:29 عصر
کدی که استفاده کردین را این جا قرار بدید تا دوستان بررسی کنند این جوری کسی نمی فهمه شما چی کار کردی!!!!!

Felony
پنج شنبه 05 مرداد 1391, 21:09 عصر
احتمالا دکمه ای داری که خاصیت Default ش رو True کردی و برای دکمه کدی نوشتی یا ModalResult ش رو هم مقدار دادی .

ahmadbh
یک شنبه 08 مرداد 1391, 10:11 صبح
احتمالا دکمه ای داری که خاصیت Default ش رو True کردی و برای دکمه کدی نوشتی یا ModalResult ش رو هم مقدار دادی .
با تشکر یکی از کلیدها
داری که خاصیت Default ش رو True کرده بودم
اگه بخواهم با کلید اینتر به ادیت بعدی بروم چه کدی با ید بنویسم
با تشکر

عقاب سیاه
یک شنبه 08 مرداد 1391, 10:17 صبح
http://barnamenevis.org/showthread.php?8293-delphi-and-key-tab پست شماره دو

ولی همین جور که استاد گفتند اگه کلیدی Default باشه این اینتر باعث فراخواندن رویداد اون کلید هم میشه!

shobair
یک شنبه 08 مرداد 1391, 14:19 عصر
با تشکر یکی از کلیدها
داری که خاصیت Default ش رو True کرده بودم
اگه بخواهم با کلید اینتر به ادیت بعدی بروم چه کدی با ید بنویسم
با تشکر

سلام

هیچ کدام از کلیدها نباید مقدار Default برابر true داشته و ModalResult هم برای آنها باید mrNone باشد.
ضمن اینکه حرکت بین کنترلها با کلید Enter فقط در بین کنترلهای متنی امکان پذیره. یعنی شما با Enter نمیتونید از روی یک دکمه بپرید.

این کد رو در event OnKeyPress کنترلهای متنی بنویسید:


if Key = #13 then
begin
Key := #0;

if GetKeyState(VK_Shift) and $8000 <> 0 then
PostMessage(Handle, WM_NEXTDLGCTL, 1, 0)
else
PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;


با این کد از روی فقط همون کنترلی که تو رویداد OnKeyPress ش نوشتی با Enter میپری به کنترلی که TabOrder ش یکی بیشتره. میتونی از ترکیب Shift+Enter برای حرکت معکوس استفاده کنی.

شبیر