السلام عليكم
هذا مثال مرفق لضبط حجم الأدوات علي الفورم ... وعند اضافة Tool bar لا يعمل المثال .. أرجو تعديل الكود بحيث يعمل مع شريط الأدوات ولكم جزيل الشكر
العنوان Screen Resolution والشرح شي ثاني
انا شفت العنوان Screen Resolution خفت لتكون بتعدل في اجهزة المستسخدمين، فنصيحة لا تلعب في اجهزة المستخدمين فيكرهووك
السلام عليكم
غير كود Form_Resize
PHP كود :
Private Sub Form_Resize()
On Error Resume Next
ResizeControls
End Sub
بالتوفيق اخي .
السلام عليكم ورحمة الله وبركاته
تفضل اخي الحبيب طلبك في المرفقات
بالتوفيق
أخي الكريم
ahmedabdelaliem جزاك الله خيرا وشكرا علي هذا المجهود الرائع ولكن عند اضافة اداة Image List لا يعمل الكود
حياك الله اخي
هذا الكود بالكامل بعد التعديل احذف الكود كاملا من البرنامج السابق و ضع هذ الكود وضع الاداه و اخبرني بالنتيجه
بالتوفيق
PHP كود :
Option Explicit
' Note that this example does not scale controls within
' other controls. For example, if you place a TextBox
' inside a PictureBox, the TextBox's position and
' dimensions are relative to the PictureBox not the
' form. This example does not handle this case.
'
' It also does not adjust fonts, stretch pictures, etc.
Private Type ControlPositionType
Left As Single
Top As Single
Width As Single
Height As Single
FontSize As Single
End Type
Private m_ControlPositions() As ControlPositionType
Private m_FormWid As Single
Private m_FormHgt As Single
' Arrange the controls for the new size.
Private Sub ResizeControls()
Dim i As Integer
Dim ctl As Control
Dim x_scale As Single
Dim y_scale As Single
' Don't bother if we are minimized.
If WindowState = vbMinimized Then Exit Sub
' Get the form's current scale factors.
x_scale = ScaleWidth / m_FormWid
y_scale = ScaleHeight / m_FormHgt
' Position the controls.
i = 1
For Each ctl In Controls
With m_ControlPositions(i)
If TypeOf ctl Is Line Then
ctl.X1 = x_scale * .Left
ctl.Y1 = y_scale * .Top
ctl.X2 = ctl.X1 + x_scale * .Width
ctl.Y2 = ctl.Y1 + y_scale * .Height
Else
If Not (TypeOf ctl Is Toolbar Or TypeOf ctl Is ImageList) Then
ctl.Left = x_scale * .Left
ctl.Top = y_scale * .Top
ctl.Width = x_scale * .Width
Else
If Not (TypeOf ctl Is ImageList) Then
ctl.Height = y_scale * .Height
End If
End If
If Not (TypeOf ctl Is ComboBox Or TypeOf ctl Is ImageList) Then
' Cannot change height of ComboBoxes.
ctl.Height = y_scale * .Height
End If
On Error Resume Next
ctl.Font.Size = y_scale * .FontSize
On Error GoTo 0
End If
End With
i = i + 1
Next ctl
End Sub
' Save the form's and controls' dimensions.
Private Sub SaveSizes()
Dim i As Integer
Dim ctl As Control
' Save the controls' positions and sizes.
ReDim m_ControlPositions(1 To Controls.Count)
i = 1
For Each ctl In Controls
With m_ControlPositions(i)
If TypeOf ctl Is Line Then
.Left = ctl.X1
.Top = ctl.Y1
.Width = ctl.X2 - ctl.X1
.Height = ctl.Y2 - ctl.Y1
Else
If Not (TypeOf ctl Is Toolbar Or TypeOf ctl Is ImageList) Then
.Left = ctl.Left
.Top = ctl.Top
.Width = ctl.Width
.Height = ctl.Height
End If
On Error Resume Next
.FontSize = ctl.Font.Size
On Error GoTo 0
End If
End With
i = i + 1
Next ctl
' Save the form's size.
m_FormWid = ScaleWidth
m_FormHgt = ScaleHeight
End Sub
Private Sub Form_Load()
SaveSizes
End Sub
Private Sub Form_Resize()
ResizeControls
End Sub
الكود يعمل اخي
انا رفعت لك البرنامج به نفس الكود
بالتوفيق
أخي الكريم الأداة اسمها ImageList1
للأسف الكود يعمل جيدا مع Tool bar وكل الأدوات وعند اضافة Image List تحدث المشكلة
انظر الي الملف المرفق
السلام عليكم ورحمة الله وبركاته
بصراحه شغال عندي تمام البرنامج شئ غريب سبحان الله ارجو من الاخوه الافاضل تجربة البرنامج هل يعمل ام لا واخباري
جرب مثال اخي امير ان شاء الله يعمل معاك
بالتوفيق