السلام عليكم ورحمة الله وبركاته
اقوم باستخدام Tmonitors لأعرض فورم على الشاشة الثانية في وضع ملئ الشاشة.
كيف أحافظ على هذا الفورم مفتوح عند قيام المستخدم بتصغير الفورم الرئيسي على الشاشة الأولى؟
لأنه طبعا عند تصغير التطبيق يذهب بكامله إلى شريط المهام.
أيضاً, أريد أن أحافظ عليه حتى عندما يقوم المستخدم بإظهار سطح المكتب, Show desktop!!
وعليكم السلام ورحمة الله وبركاته
كافكار سريعة
يمكن قنص رسالة التصغير minimize message
يمكن جعل فورم الشاشة الثانية هو الفورم الرئيس MainForm ويظهر الشاشة الاولى عند اول تنفيذ ويخفي نفسه
يمكن تقسيم التطبيق الى اثنين واحد لكل شاشة ويتم التخاطب بينهما inter process communication
...
نعم جزاك الله خيرا
تقسيم التطبيق إلى اثنين يبدو لي الأفضل, تبقى المحاولة جارية من أجل تجاوز SHOW DESKTOP, و إبقاء البرنامج FULL SCREEN.
أعتقد أنني وجدت الحل:
إذا قمنا بعطيل زر minimize للفورم, و جعلنا الفورم stayontop.
ثم في حدث onShow:
كود :
setwindowlong(getwindow(self.Handle,GW_OWNER),GWL_STYLE,0);
setwindowlong(getwindow(self.Handle,GW_OWNER),GWL_EXSTYLE,0);
self.OnShow:=nil;
وبهذا نتجاوز Show Desktop.
تنويه: لا أنصح بإستخدام هذه الخاصية لأنها تجعل المستخدم يكره البرنامج, تخيل أنك تقوم بتصغير كل البرامج لترى سطح مكتبك و يبقى برنامج واحد لا يقبل ذلك, ربما ستقوم بإغلاقه للأبد.
ولكن في حالتي فأنا أستخدمه فقط على الشاشة الثانية و التي من المفترض أن المستخدم قد وضع البرنامج لأجلها!!
فكرة اخرى دون تقسيم التطبيق الى اثننين، جعل الفورم2 في مكتبة DLL واستدعائها، هنا عند تصغير الفورم الاول يبقى الثاني
نعم, مرة أخرى جزاك الله خيراً, قمت بتجريب الأخيرة, وتم بذلك حل مشكلة minimize, وقمت بإضافة الجزء الثانية وهو منع show desktop من تصغير برنامجي.
وبهذا تمت بنجاح.