PDA

View Full Version : مشکل با خاصیت FormStyle



samprp
پنج شنبه 24 مرداد 1387, 02:48 صبح
با عرض سلام
یه فرم دارم (فرم Notify) که می خوام مواقع خاصی نشون داده بشه غیر از فرم اصلیست
این کار عملا وقتیکه شما کلا مینیمایز کنید غیر فعال می شه یعنی هر چه قدر مثلا تو یه تایمر اون فرم رو صدا بزنید نشون داده نمی شه و باید فرم اصلی رو ریستور بکنید

این رو حلش کردم با استفاده از ActiveControl

حالا مشکل دیگه اینه که اون فرم (فرم Notify) باید به صورت Alway on top باشه یعنی باید خاصیت FormStyle رو رو fsStayontop قرار بدیم .

وقتی برنامه به حالت مینیمایز شده نباشه و ما فرم Notify رو مثلا با یه تایمر show کنیم خوب ALways on top هم هست (امتحان کردم).

ولی وقتی ما فرم اصلی (طبیعتا کل برنامه) رو مینیمایز کنیم اون فرم Notify نشون داده می شه ولی دیگه Alway on top نیست .

نظر شما در این مورد چیه ؟
با تشکر

Hsimple11
پنج شنبه 24 مرداد 1387, 04:54 صبح
لی وقتی ما فرم اصلی (طبیعتا کل برنامه) رو مینیمایز کنیم اون فرم Notify نشون داده می شه ولی دیگه Alway on top نیست .

وقتی Main Form خودتون رو Minimize می کنید تمام فرمهایتان هم به تبع آن Hide می شوند. منظورتون اینه که با Minimize کردن فرم اصلی، فرم Notify همچنان باقی بماند؟

اگر بله :

http://barnamenevis.org/forum/showthread.php?t=117052

samprp
پنج شنبه 24 مرداد 1387, 21:56 عصر
سلام
اونایی رو که تو اون تاپیک گفته بودید همه رو اعمال کردم ولی خطای زیر رو می ده
Cannot focus disabled or invisible window
این رو تونستم نادیدش بگیرم . (با تری اکسپت)
می خواستم بدونم این خطا مشکلی رو به وجود نمی آره و نمی شه یه جوری حذفش کرد.
در ضمن اون فرمی که تابع InTaskbar رو براش صدا زدم یه ممو داخلش هست که با صدا زدن این تابع شکل حاشیش عوض شده .

Hsimple11
جمعه 25 مرداد 1387, 01:25 صبح
می خواستم بدونم این خطا مشکلی رو به وجود نمی آره و نمی شه یه جوری حذفش کرد.
در ضمن اون فرمی که تابع InTaskbar رو براش صدا زدم یه ممو داخلش هست که با صدا زدن این تابع شکل حاشیش عوض شده .

دلیلش به اون کد ارتباطی نداره. احتمالا شما زمانی کدی رو از فرم فرا میخونید که هنوز فرمتان Visible نشده. اگر مشکل ادامه داشت سورس برنامه تان را قرار دهید.


در مورد سوال دوم؛ در حالت عادی این اتفاق نمی افتد. بستگی به طراحی فرمهای شما و Border های فرمهای شما دارد. پارامتر dwExStyle که به عنوان پارامتر آخر در تابع SetWindowLong وجود دارد نوع پنجره را تعیین میکند. WS_EX_WINDOWEDGE مشخص میکند که فرم مذکور دارای حاشیه ای برجسته باشد (همانند Default خود دلفی).
لیستی از این Style ها را میتوانید در اینجا (http://www.newobjects.com/pages/ndl/alp/af-wndStyle.htm) ببینید.