powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / адаптация форм к разным мониторам
9 сообщений из 34, страница 2 из 2
адаптация форм к разным мониторам
    #34148639
blinow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вообщето резайз контролов крутовато, много возни и забываешь про основную задачу.
Ну исходи из мин 800*600 или из 1024*768 все таки ты же можешь соорентироваться на основной размер мониторов.
Потом можно использовать скролл, это в принципе не так сложно.
Нужно только на форму поместить контейнер (picturebox или frame), а все контролы ставить в этот контейнер. А уже затем вычислять размеры и положение контейнера. Ведь у него координаты могут быть и с минусом. Только полосы если берешь стандартные, то у них min и max не могут быть отрицательными, соответсвенно надо перевычислять. Можно взять Microsoft Forms 2.0 Object Library там у полос может быть отрицательное значение. Файл FM20.DLL, устанавливается с офисом типа 2000 и далее, только не забудь потом в Setup его добавить. Кстати там и ListBox и ComboBox, такие как надо, с колонками, но нет сортировки и заполнение только программным путем. Типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
With ListBox1
 .ColumnCount =  2  
 .AddItem "row1, col1"
 .List( 0 ,  1 ) = "row1, col2"
 .List( 0 ,  2 ) = "row1, col3"
 .AddItem "row2, col1"
 .List( 1 ,  1 ) = "row2, col2"
 .List( 1 ,  2 ) = "row2, col3"
End With
Да микрософт как всегда не может без бочки дегтя в ложке меда, по руским буквам ни хрена не ищет, а так очень даже не плохо.
Главное правильно вычислять все эти положения контейнера, надо тренироваться на пустой форме, но зато потом код абсолютно одинаков на все формы и без проблем используешь. Да, если используются контролы которые получают фокус, необходимо прокручивать, чтоб контрол оказалася в видимой области, а то грустно будет.
Я так реализовал печать с просмотром, класно получилось без всяких DataEnvironment и масштаб и таскание мышкой и тд и тп.
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34148802
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkiadesFor Each obj In Me.Controls вам о чем-нибудь говорит?

Ну ка, ну ка, поподробнее...
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34148804
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneимхо, ресайз контролов на форме под конкретное разрешение экрана - это порочная практика.

Я не виноват - начальство требует...
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34148813
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinowНу исходи из мин 800*600 или из 1024*768 все таки ты же можешь соорентироваться на основной размер мониторов.
Потом можно использовать скролл, это в принципе не так сложно.

Нужно, короче, привязать все контролы к краям формы - что бы они при любом разрешении сдвигались относительно ее краев...
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34151956
blinow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это по скролу.
Для того, чтобы не привязывать каждый контрол к краям формы, для этого все контролы нужно поместить в контейнер который может содержать контролы, в частности, это PictureBox или Frame. В контейнере все координаты контролов будут относительно края контейнера, а ты в свою очередь двигай только контейнер. И положение контейнера вычисляй от размеров формы
PictureBox.Width и Height, такая какая тебе надо.
Размер формы делай подходящий для разрешения, Наличие или отсутствие полос вычисляй исходя из размеров контейнера и формы, только у формы не забудь Width это Me.ScaleWidth, то же Height.
Короче потренеруйся, помести PictureBox на форму, при запуске уменьши размер формы и вычисляй, влазит, не влазит и вычисляй значения Min и Max Scroll ов, не забудь и про ширину самих скролов. У стандартных скролов значения Min не может быть отрицательным, соответственно нужно довычислять.
На первый взгляд геморно, но если задаться целью, то не так и сложно и потом код то подходит на любую форму.
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34151957
blinow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For Each obj In Me.Controls
Это конечно хорошо.
Но надо анализировать каждый контрол и перевычислять его размер и положение, этого мало а шрифты. По умолчанию идет там SanSerif типа, он не труетапе, соответственно его размеры имеют определенный набор, значит надо еще и подгонять контрол под имеющийся размер шрифта.
Если использовать труетапе, то надо сперва выяснить какие шрифты есть на компе, скажете Arial, а что у Вас в Worde никогда не появлялись кракозябры, и это всего лишь от того, что в доке используется Arial, а на компе только Arial Cyr. Конечно это классная вещь для сдирания денег или умничинья, рассказал сказки про страшную неполадку, день промурыжил, а потом выдал на гора.
А так сам видишь сколько гемора, и даже используя труетапе, надо прикидывать нормально входит шрифт или всеже немного увеличить контрол.
Ни одно произведение мелкософта, так не делает, это очень мудрено и жрет процессор и ...
Да и использование труетапе все таки дополнительные вычисления (не твои) но проц то пашет
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34157203
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
panuя так иногда делаю
Public Const LikeScrWidth As Long = 15360 'ширина экрана.....
.
.
.
С уважением
Александр Плотников.


Спасибо. Очень помог этот код, только пришлось писать для каждого элемента.
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34167265
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gavРебята, спасибо вам за такие хорошие ответы, но вы маленько забыли, что при пересчете размеров формы пересчитываются размеры и положение каждого контрола на ней. В среднем их по 20 шт. на форме, что на каждый контрол такие штуки писать? :)

В Form_Resize.

Но это не самое интересное - самое интересное это когда юзер меняет масштаб в настройке монитора...
...
Рейтинг: 0 / 0
адаптация форм к разным мониторам
    #34167284
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дурак
Можно ввести какие нибудь коэффициенты привязанные к разрешению и в Form_Resizе каждый контролл масшатабировать... Фиксированные размеры форм - это жесто. У нас такое не допускается.


Нафига масштабировать диалоговые окна, к примеру?
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / адаптация форм к разным мониторам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]