PDA

View Full Version : سوال: مشکل در ShowModal



Mask
پنج شنبه 15 اردیبهشت 1390, 15:47 عصر
با سلام
دو تا فرم دارم.
که در دکمه فرم اولم این کد رو قرار میدم.

Form2.Caption:='ali';
Form2.ShowModal;
Form2.Edit1.SetFocus;
وقتی فرم دوم رو میبندم برنامه اروره فوکوس میده.
چرا؟
من که دستور فوکوس رو در دکمه فرم یک نوشتم.و دوباره که فراخوانی نمیشه...
چرا پس؟

mohsen24000
پنج شنبه 15 اردیبهشت 1390, 16:01 عصر
Form2.Edit1.SetFocus;
این دستور شما وقتی اجرا میشه که فرم 2 شما بسته شده باشه و وقتی هم close (hide) میشه دیگه شما به اون فرم دسترسی ندارید که میخواهید ادیت باکس روی اون رو فوکوس کنید!

Mask
پنج شنبه 15 اردیبهشت 1390, 16:42 عصر
ممنون.
چرا بعد از بسته شدن اجرا میشه؟(دلیل فنی)

mohsen24000
پنج شنبه 15 اردیبهشت 1390, 16:59 عصر
وقتی فرم در حالت شومودال نمایش داده میشه، کنترل برنامه به اون فرم منتقل میشه و دیگه شما از فرم قبلی که اون رو فراخوانی کردید قابل دسترسی نیست و دستورات بعدی هم تا مادامی که فرم بسته نشده اجرا نخواهد شد.

Mask
پنج شنبه 15 اردیبهشت 1390, 17:10 عصر
ممنون.
پس اگه دستورات رو قبلش بنویسیم دیگه مشکلی پیش نمیاد.؟
ممنون.

tdkhakpur
پنج شنبه 15 اردیبهشت 1390, 21:56 عصر
پس اگه دستورات رو قبلش بنویسیم دیگه مشکلی پیش نمیاد.؟


تا وقتی فرم ایجاد نشه شما نمیتوانید بهش دسترسی داشته باشید و این دسترسی حتی میتونه ارسال پیغام مثل setfocus باشه این کار چه قبل باشه چه بعد که فرم آزاد شده باشه دسترسی غیر مجاز محسوب میشه.
امااگر show کرده باشید setfocus بعدی عمل خواهد نمود و برای قبل از show ایراد خواهد گرفت.

nilidelphi
جمعه 16 اردیبهشت 1390, 22:23 عصر
شما می تونید متد SetFocus رو در رویداد OnShow tفرم 2 بنویسید.