Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Настройка разрешения экрана ...


Автор: Farhod 6.5.2002, 10:57
Как настроить размеры формы и всех её элементов на изменение разрешения экрана.
Я разработал программу при разрешении 1024*768. Теперь если изменить разрешение на 800*600 то форма не помещается в экран. Как решить эту проблему ?

Автор: Sheff 24.5.2002, 18:17
Задавай размеры эл.управления относительно выс, шир экрана, эти значения храняться в свойствах объекта screen: width, height.

Автор: cardinal 25.5.2002, 01:24
Я тоже столкнулся с этой проблемой. Я правильно понял что надо поменять размеры "всего что находиться на форме"? Я просто решил это так: проверил (с screen.width и т.д.) какое разрешение экрана и исходя из этого загружаю либо form1 либо form2 (при этом form1 под одно разрешение сделана, а form2 под другое). При этом я не думаю, что это идеальное решение потому, что в обоих формах сидит один и тот же код, но его в принципе в модуль засунуть можно...
Что думайте господа?

Автор: Farhod 28.5.2002, 07:35
Спасибо
Я вот нащёл ещё один путь
Есть такой ".ocx" называется FormAideControl .Так вот если поставить его на форму он хранит все размеры всех э/у-я в форме.И при изменении размера формы он изменяет все размеры.

Автор: Sheff 28.5.2002, 19:41
Цитата(Farhod @ 28.5.2002, 08:35)
Спасибо
Я вот нащёл ещё один путь
Есть такой ".ocx" называется FormAideControl .Так вот если поставить его на форму он хранит все размеры всех э/у-я в форме.И при изменении размера формы он изменяет все размеры.

А ты не мог бы мне его смылить

Автор: Cardinal 29.5.2002, 06:33
Цитата(Farhod @ 06.5.2002, 11:57)
Как настроить размеры формы и всех её элементов на изменение разрешения экрана.
Я разработал программу при разрешении 1024*768. Теперь если изменить разрешение на 800*600 то форма не помещается в экран. Как решить эту проблему ?

Привяжи все обьекты к форме, задай алгоритм динамического изменения обьектов формы и с помощью события формы  Form_Resize меняй, как хош.
Могу привести пример, я тут делал график под свою прогу, он конечно примитивный, но он как раз динамически меняет свой масштаб при изменении размера формы. Вот код:
Public n As Long
Dim M(30)

Private Sub Form_Load()
n = 25
xx2 = n * 25 + 45
form1.Width = 405 + (15 * (xx2 + 30))
form1.Height = 405 + (15 * ((n * 20) + 50))
form1.Scale (0, 0)-(n * 25 + 75, n * 20 + 60)
End Sub

Private Sub Form_Resize()
Cls
n = 25
M(1) = 0.123
M(2) = 0.4576
M(3) = 0.89
M(4) = 2.4568
M(5) = 3.3767
M(6) = 4.5678
M(7) = 5.478
M(8) = 6.478
M(9) = 7.589
M(10) = 8.3567
M(11) = 8.463
M(12) = 8.456
M(13) = 8.463
M(14) = 8.463
M(15) = 8.463
M(16) = 7.2476
M(17) = 6.6578
M(18) = 5.2456
M(19) = 4.678
M(20) = 4.123
M(21) = 3.798
M(22) = 2.4567
M(23) = 1.3467
M(24) = 0.789
M(25) = 0.423
AutoRedraw = True
ScaleMode = 3
xx1 = (n * 20 + 30) - (n * 20)
Xt = xx1 + 25 'первая точка(координата по х)
xx2 = n * 25 + 45
xy1 = xx1 - 5
xy2 = xx1 + 5
Yx1 = (n * 20 + 40) - 5
yx2 = (n * 20 + 40) + 5
yy1 = n * 20 + 40 '                      yy1 = 520
yt = yy1

'form1.Width = 405 + (15 * (xx2 + 30))' если разштриховать, форма изменит не свои размеры хоть тяни, хоть не тяни

'form1.Height = 405 + (15 * ((n * 20) + 50))'если разштриховать, форма изменит не свои размеры хоть тяни, хоть не тяни

form1.Scale (0, 0)-(n * 25 + 75, n * 20 + 60)
Line (xx1, 20)-(xx1, yy1), QBColor(10) 'ось Y
Line (xx1, yy1)-(xx2, yy1), QBColor(10) 'ось X
For i = 0 To n
Line (xx1, Yx1)-(xx1, yx2), 10
PSet (xx1 - 7, yx2), &H8000000F
xx1 = xx1 + 25
Print i
If i <> 0 Then
yy1 = yy1 - 20
Line (xy1, yy1)-(xy2, yy1), 10
PSet (xy1 - 25, yy1 - 7), &H8000000F ' Печать текста на оси
rMi = rMi + 0.5
Print rMi
End If
Next i
Xt1 = Xt
Yt1 = yt - (Int(M(1) * 10)) * 4
PSet (Xt1, Yt1), QBColor(12)
Print M(1)
For i = 2 To n Step 1
Xt = Xt + 25
Xt2 = Xt
'Yt = Yt - 20
Yt2 = yt - (Int(M(i) * 10)) * 4
Line (Xt1, Yt1)-(Xt2, Yt2), QBColor(12)
Xt1 = Xt2
Yt1 = Yt2
Print M(i)
Next i
End Sub

Пробуй, если что непонятно - спрашивай !!!!!

Автор: Farhod 1.6.2002, 10:41
Круто! Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)