Программирование на 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
-
-
- Сообщения: 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
2
RayShade: золотые слова! Не догадался...
Я так понял, форма уже есть? Тогда:
- Код: Выделить всё
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
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 61