Как сделать форму масштабируемой?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AndrewMarcovich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 05.03.2005 (Сб) 10:29

Как сделать форму масштабируемой?

Сообщение AndrewMarcovich » 30.03.2005 (Ср) 11:43

Чтобы при изменении разрешения элементы в форме и сама форма пропорционально меняли размеры.Заранее благодарен

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 30.03.2005 (Ср) 12:17

Можно действовать где-то так:
Код: Выделить всё

Const FormPixelLeft=100
Const FormPixelTop=100
Const FormPixelWidth=300
Const FormPixelHeight=200
'Аналогичные константы задаешь для всех контролов
Sub Form_Load()
     Me.Left=FormPixelLeft*Screen.TwipsPerPixelX
     Me.Top=FormPixelTop*Screen.TwipsPerPixelY
     Me.Width=FormPixelWidth*Screen.TwipsPerPixelX
     Me.Height=FormPixelHeight*Screen.TwipsPerPixelY
'Выполняешь для всех контролов то же самое
End Sub
Листинги не горят!

AndrewMarcovich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 05.03.2005 (Сб) 10:29

Сообщение AndrewMarcovich » 30.03.2005 (Ср) 12:26

да мне же жизни не хватит!!!;))А попроще как-нибудь?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 30.03.2005 (Ср) 12:31

А цикл



Код: Выделить всё
for each ctl in form.controls
next ctl




Как то не догадаться применить?

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 30.03.2005 (Ср) 13:00

2RayShade: золотые слова! Не догадался...
Я так понял, форма уже есть? Тогда:
Код: Выделить всё
Const BasicTwipsPerPixelX= 'чему он равен при том разрешении, для которого спроектирована форма
Const BasicTwipsPerPixelY= 'чему он равен при том разрешении, для которого спроектирована форма
'далее в коде:
If Not(Screen.TwipsPerPixelX=BasicTwipsPerPixelX) Then
   for each ctl in form.controls
      ctl.left=ctl.left*Screen.TwipsPerPixelX/BasicTwipsPerPixelX
      ctl.width=ctl.width*Screen.TwipsPerPixelX/BasicTwipsPerPixelX
   next ctl
End If
If Not(Screen.TwipsPerPixelY=BasicTwipsPerPixelY) Then
   for each ctl in form.controls
      ctl.top=ctl.top*Screen.TwipsPerPixelY/BasicTwipsPerPixelY
      ctl.height=ctl.height*Screen.TwipsPerPixelY/BasicTwipsPerPixelY
   next ctl
End If
Листинги не горят!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 66

    TopList