Пропорциональное изменение размеров внутри формы - VB

Узнай цену своей работы

Формулировка задачи:

Как изменять размеры,положение компонентов внутри главной формы в зависемости от её размеров

Решение задачи: «Пропорциональное изменение размеров внутри формы»

textual
Листинг программы
  1. Dim SW_old As Double, SH_old As Double 'начальная ширина и высота окна
  2.  
  3. Dim CtrSize() As Long ' массив для хранения начальных размеров и положения контролов
  4.  
  5. Const cLeft = 1
  6. Const cTop = 2
  7. Const cWidth = 3
  8. Const cHeight = 4
  9.  
  10. Private Sub Form_Load()
  11.   Dim i As Long
  12.   Dim ctr As Control
  13.  
  14.   SW_old = Me.ScaleWidth
  15.   SH_old = Me.ScaleHeight
  16.   For Each ctr In Me.Controls
  17.     ReDim Preserve CtrSize(1 To 4, 0 To i)
  18.     CtrSize(cLeft, i) = ctr.Left
  19.     CtrSize(cTop, i) = ctr.Top
  20.     CtrSize(cWidth, i) = ctr.Width
  21.     CtrSize(cHeight, i) = ctr.Height
  22.     i = i + 1
  23.   Next
  24. End Sub
  25.  
  26. Private Sub Form_Resize()
  27.   Dim kW As Double, kH As Double
  28.   Dim i As Long
  29.   Dim ctr As Control
  30.   On Error Resume Next ' некоторые контролы не позволяют изменять свои размеры
  31.  
  32.   If Me.WindowState <> vbMinimized Then
  33.     kW = Me.ScaleWidth / SW_old
  34.     kH = Me.ScaleHeight / SH_old
  35.     For Each ctr In Me.Controls
  36.       ctr.Left = CtrSize(cLeft, i) * kW
  37.       ctr.Top = CtrSize(cTop, i) * kH
  38.       ctr.Width = CtrSize(cWidth, i) * kW
  39.       ctr.Height = CtrSize(cHeight, i) * kH
  40.       i = i + 1
  41.     Next
  42.   End If
  43. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы