Масшабирование элементов на форме

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

Масшабирование элементов на форме

Сообщение Чудик » 07.09.2004 (Вт) 13:26

Есть дилема.... Есть форма MDI, есть дочерняя форма, соответственно. При нажатии в правом верхнем углу дочерней формы кнопки "свернуть в окно" форма сворачивается и обрезает часть элементов, которые выходят за облать видимости. Нельзя ли это избежать при помощи, например, масштабирования? Чтобы все элементы оставались?
Век живи - век учись!
www.detal-plast.narod.ru

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 07.09.2004 (Вт) 14:42

чего-то я не очень вьехал в суть...
но все же, как нам всем известно, у формы есть событие Form_Resize(). все, что тебе нужно сделать - в этом событии изменить размеры и позиции элементов, находящихся на ней. прикинь сначала, где какой элемент будет находиться, скользо места занимать, расстояние между каждым элементом... и все
ну прмерно так (скажем, 3 TextBox'а):
Код: Выделить всё
+-----++-----+
|     ||     |
|     |+-----+
|     |+-----+
|     ||     |
+-----++-----+

Код: Выделить всё
Form_Resize()
  Text1.Move 0, 0, Me.ScaleWidth \ 2, Me.ScaleHeight
  Text2.Move Me.ScaleWidth \ 2 + 60, 0, Me.ScaleWidth \ 2 - 60, Me.ScaleHeight \ 2
  Text3.Move Me.ScaleWidth \ 2 + 60, Me.ScaleHeight \ 2 + 60, Me.ScaleWidth \ 2 - 60, Me.ScaleHeight \ 2 - 60
End Sub
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Масшабирование элементов на форме

Сообщение Чудик » 07.09.2004 (Вт) 15:07

Ну, это проще, чем я думал, хотя масштаб работы только по масштабированию не маленький. Сколько подгонки! :shock: Попробуем....
Век живи - век учись!
www.detal-plast.narod.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.09.2004 (Вт) 15:09

Есть специальные компоненты для этого (Olectra Resizer), которые подобное масштабирование очень сильно упрощают. Только они денег стоят.
Lasciate ogni speranza, voi ch'entrate.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 07.09.2004 (Вт) 15:20

alibek писал(а):Есть специальные компоненты для этого (Olectra Resizer), которые подобное масштабирование очень сильно упрощают. Только они денег стоят.

кстати, на vbstreets.ru вроде было что-то подобное... и даже в исходниках, если мне склероз не изменяет... еще можно на vbrussian.com посмотреть...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Масшабирование элементов на форме

Сообщение Чудик » 07.09.2004 (Вт) 15:31

Дополнительные компоненты думать отучают. А вот исходники - дело хорошее, они дают возможность учиться на чужом опыте. Я им всегда рад. :)
Век живи - век учись!
www.detal-plast.narod.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.09.2004 (Вт) 16:09

Если так продолжать, то имеет смысл писать на WASM - вот уж там мозги ломать придется.
Ты ведь используешь компоненты из рун-тайма (кнопки, текстбоксы и пр.), а не создаешь их через API.
Если форма простая, то можно и ручками, а для сложного дизайна код ресайзинга будет занимать примерно тот же объем, как и рабочий код.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Масшабирование элементов на форме

Сообщение tyomitch » 07.09.2004 (Вт) 17:48

Чудик писал(а):Дополнительные компоненты думать отучают. А вот исходники - дело хорошее, они дают возможность учиться на чужом опыте. Я им всегда рад. :)

"Объяснение принципов помогает думать. Примеры учат обезьянничать." (c) Андрей Y
Или ты и есть он, или это цитата из какого-то третьего места - не похоже на совпадение.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.09.2004 (Вт) 17:50

Почему? Я бы тоже мог вполне сказать что-то в этом духе, и даже близко к тексту :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.09.2004 (Вт) 18:09

Вот пример
Вложения
Resizing.zip
Resizing
(2.9 Кб) Скачиваний: 26


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

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

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

    TopList