| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
А ты не мог бы мне его смылить |
| Автор: Cardinal 29.5.2002, 06:33 | ||
Привяжи все обьекты к форме, задай алгоритм динамического изменения обьектов формы и с помощью события формы 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 |
| Круто! Спасибо |