PDA

View Full Version : اشکال در نمایش ShowMessage در فرمهای StayOnTop



Cave_Man
یک شنبه 25 آذر 1386, 12:29 عصر
با سلام
برنامه اتچ شده رو ملاحظه بفرمایید
این برنامه شامل 3 تا فرم هست که فقط فرم اصلی بصورت اتوماتیک Create میشه و بقیه بصورت Dynamic در RunTime ایجاد میشن
مشکل اینه که :در فرم سوم پیغام ایجاد شده بوسیله ShowMessage در زیر فرم سوم قرار میگیره و اگر قبل از نمایش پیغام فرم سوم Maximize شده باشه امکان رویت پیغام تولید شده با ShowMessage اصلا وجود نداره !! با این توضیح که این فرم StayOnTop هست...
توجه کنید که اگر فرم ها رو بصورت اتومیتیک در Unit پروژه ایجاد کنیم و نه به صورت Dynamic این مشکل وجود نداره.
راه حل این مشکل چی هست؟

A.Nemati
یک شنبه 25 آذر 1386, 13:16 عصر
ظاهرا تو در تو بودن فرم‌ها چنین مشکلی رو بوجود می‌آره. یکی از روش‌های حل مسئله، استفاده از MessageBox است (در برنامه شما امتحان کردم و جواب داد).
مثلا:


MessageBox(Self.Handle, 'Message', 'Caption', MB_OK or MB_ICONINFORMATION);

Cave_Man
یک شنبه 25 آذر 1386, 13:26 عصر
متاسفانه من از
Raise Exception.Create('');
ShowMessage
در پروژه هام زیاد استفاده کردم
و حتی الامکان میخام اون رو حل کنم و البته خیلی دوست دارم بدونم که چرا چنین مشکلی پیش میاد.

Cave_Man
یک شنبه 25 آذر 1386, 19:39 عصر
راه حلی که استفاده کردم یا به عبارتی دیگه کلک رشتی ای که به کار بردم اینه که بعد از Create کردن فرم و قبل از ShowModal میام و FormStyle رو میزارم روی fsNormal
ولی هنوز در عجبم از این اشکال !
اگر کسی میدونه این اشکال چرا زخ میده ...

dkhatibi
دوشنبه 26 آذر 1386, 06:36 صبح
Application>handle را برای پارامتر اول و MB_StayOnTop را برای پارامتر آخر هم امتحان نمایید.

Cave_Man
دوشنبه 26 آذر 1386, 12:54 عصر
Application>handle را برای پارامتر اول و MB_StayOnTop را برای پارامتر آخر هم امتحان نمایید.
منظورتون رو متوجه نشدم کجا باید این پارامترها رو بزارم؟
اگه منظورتون توی MessageBox هست که توی اون مشکلی نیست مشکل بنده در ShowMessage , raise Exception بود......