السلام عليكم ورحمة الله وبركاته
لدي ثلاثة أسئلة :
١- كيف يمكن توسيط الفورم الابن داخل mdi form مع الأخذ بالاعتبار تغيير حجم الفورم ؟
٢- كيف يمكن تمديد صورة الخلفية داخل mdi form مع الأخذ بالاعتبار تغير حجم الفورم ؟
٣- كيف يمكن الحصول على ابعاد الشاشة الحالية وتغييرها وإعادتها للوضع الأصلي بعد إغلاق البرنامج ؟
السلام عليكم...
* إجابة السؤال الأول: توسيط MDI Child داخل الـ MDI Form:
رغم أن نافذة الخصائص لا تظهر الخاصيتين ScaleWidth و ScaleHeight للنافذة MDI Form إلا أن كلاً من الخاصيتين موجودة كخاصية وقت التنفيذ (Run-time only property) أي يمكن استعمالها بالكود:
* تم تعديل و اختصار الكود بعد مشاهدة مشاركة الأخ AL_BRINS التالية - مشكوراً جداً.
كود :
' في قسم التصريحات العام
' إجراء لتوسيط النافذة الابن مع تمرير اسمها
Private Sub CenterMdiChild(AForm As Form)
AForm.Move (Me.ScaleWidth - AForm.Width) / 2, (Me.ScaleHeight - AForm.Height) / 2
End Sub
' إجراء لتوسيط النافذة الابن النشطة
Private Sub CenterActiveMdiChild()
If Not (Me.ActiveForm Is Nothing) Then
CenterMdiChild Me.ActiveForm
End If
End Sub
* جزء من السؤال الثالث:
يمكنك الحصول على عرض (Width) و ارتفاع (Height) الشاشة باستعمال خصائص الكائن Screen:
كود :
Dim WTwips As Siingle ' العرض بوحدة التويب
Dim HTwips As Siingle ' الارتفاع بوحدة التويب
Dim WPixels As Long ' العرض بوحدة البكسل
Dim HPixels As Long ' الارتفاع بوحدة البكسل
WTwips = Screen.Width
HTwips = Screen.Height
WPixels = Screen.Width \ Screen.TwipsPerPixelX
HPixels = Screen.Height \ Screen.TwipsPerPixelY
نرجو الاستفادة و السلام.
وعليكم السلام ورحمة الله وبركاته
بعد الشكر للاستاذ ناجي ابراهيم
هذا جواب السؤال الثاني
السلام عليكم...
رائع جداً... ممتاز يا أخ AL_BRINS.
لم أنتبه إلى أن النافذة MDI Form تملك الخاصيتين ScaleWidth و ScaleHeight (لأنهما لا تظهران في نافذة الخصائص) إلا بعد الاطلاع على الكود الذي أرفقته.
شكراً و السلام عليكم.