![]() |
|
Модераторы: Akina |
![]()
|
|
| Farhod |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Как настроить размеры формы и всех её элементов на изменение разрешения экрана.
Я разработал программу при разрешении 1024*768. Теперь если изменить разрешение на 800*600 то форма не помещается в экран. Как решить эту проблему ? |
|||
|
||||
| Sheff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 503 Регистрация: 25.3.2002 Где: Зеленоград Репутация: нет Всего: 3 |
Задавай размеры эл.управления относительно выс, шир экрана, эти значения храняться в свойствах объекта screen: width, height.
-------------------- -------------------------- Шеф всегда прав :) |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Я тоже столкнулся с этой проблемой. Я правильно понял что надо поменять размеры "всего что находиться на форме"? Я просто решил это так: проверил (с screen.width и т.д.) какое разрешение экрана и исходя из этого загружаю либо form1 либо form2 (при этом form1 под одно разрешение сделана, а form2 под другое). При этом я не думаю, что это идеальное решение потому, что в обоих формах сидит один и тот же код, но его в принципе в модуль засунуть можно...
Что думайте господа? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Farhod |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Спасибо
Я вот нащёл ещё один путь Есть такой ".ocx" называется FormAideControl .Так вот если поставить его на форму он хранит все размеры всех э/у-я в форме.И при изменении размера формы он изменяет все размеры. |
|||
|
||||
| Sheff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 503 Регистрация: 25.3.2002 Где: Зеленоград Репутация: нет Всего: 3 |
А ты не мог бы мне его смылить -------------------- -------------------------- Шеф всегда прав :) |
|||
|
||||
| Cardinal |
|
|||
|
Unregistered |
Привяжи все обьекты к форме, задай алгоритм динамического изменения обьектов формы и с помощью события формы 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 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Круто! Спасибо
|
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |