Пропорциональное изменение размеров внутри формы - VB
Формулировка задачи:
Как изменять размеры,положение компонентов внутри главной формы в зависемости от её размеров
Решение задачи: «Пропорциональное изменение размеров внутри формы»
textual
Листинг программы
- Dim SW_old As Double, SH_old As Double 'начальная ширина и высота окна
- Dim CtrSize() As Long ' массив для хранения начальных размеров и положения контролов
- Const cLeft = 1
- Const cTop = 2
- Const cWidth = 3
- Const cHeight = 4
- Private Sub Form_Load()
- Dim i As Long
- Dim ctr As Control
- SW_old = Me.ScaleWidth
- SH_old = Me.ScaleHeight
- For Each ctr In Me.Controls
- ReDim Preserve CtrSize(1 To 4, 0 To i)
- CtrSize(cLeft, i) = ctr.Left
- CtrSize(cTop, i) = ctr.Top
- CtrSize(cWidth, i) = ctr.Width
- CtrSize(cHeight, i) = ctr.Height
- i = i + 1
- Next
- End Sub
- Private Sub Form_Resize()
- Dim kW As Double, kH As Double
- Dim i As Long
- Dim ctr As Control
- On Error Resume Next ' некоторые контролы не позволяют изменять свои размеры
- If Me.WindowState <> vbMinimized Then
- kW = Me.ScaleWidth / SW_old
- kH = Me.ScaleHeight / SH_old
- For Each ctr In Me.Controls
- ctr.Left = CtrSize(cLeft, i) * kW
- ctr.Top = CtrSize(cTop, i) * kH
- ctr.Width = CtrSize(cWidth, i) * kW
- ctr.Height = CtrSize(cHeight, i) * kH
- i = i + 1
- Next
- End If
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д