منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : سؤال خاص ب mdi form
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

لدي ثلاثة أسئلة :

١- كيف يمكن توسيط الفورم الابن داخل 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 (لأنهما لا تظهران في نافذة الخصائص) إلا بعد الاطلاع على الكود الذي أرفقته.

شكراً و السلام عليكم.