|
|
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
Ну вообщето резайз контролов крутовато, много возни и забываешь про основную задачу. Ну исходи из мин 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. Главное правильно вычислять все эти положения контейнера, надо тренироваться на пустой форме, но зато потом код абсолютно одинаков на все формы и без проблем используешь. Да, если используются контролы которые получают фокус, необходимо прокручивать, чтоб контрол оказалася в видимой области, а то грустно будет. Я так реализовал печать с просмотром, класно получилось без всяких DataEnvironment и масштаб и таскание мышкой и тд и тп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 04:03 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
MelkiadesFor Each obj In Me.Controls вам о чем-нибудь говорит? Ну ка, ну ка, поподробнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 08:49 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
Konst_Oneимхо, ресайз контролов на форме под конкретное разрешение экрана - это порочная практика. Я не виноват - начальство требует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 08:50 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
blinowНу исходи из мин 800*600 или из 1024*768 все таки ты же можешь соорентироваться на основной размер мониторов. Потом можно использовать скролл, это в принципе не так сложно. Нужно, короче, привязать все контролы к краям формы - что бы они при любом разрешении сдвигались относительно ее краев... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 08:55 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
Это по скролу. Для того, чтобы не привязывать каждый контрол к краям формы, для этого все контролы нужно поместить в контейнер который может содержать контролы, в частности, это PictureBox или Frame. В контейнере все координаты контролов будут относительно края контейнера, а ты в свою очередь двигай только контейнер. И положение контейнера вычисляй от размеров формы PictureBox.Width и Height, такая какая тебе надо. Размер формы делай подходящий для разрешения, Наличие или отсутствие полос вычисляй исходя из размеров контейнера и формы, только у формы не забудь Width это Me.ScaleWidth, то же Height. Короче потренеруйся, помести PictureBox на форму, при запуске уменьши размер формы и вычисляй, влазит, не влазит и вычисляй значения Min и Max Scroll ов, не забудь и про ширину самих скролов. У стандартных скролов значения Min не может быть отрицательным, соответственно нужно довычислять. На первый взгляд геморно, но если задаться целью, то не так и сложно и потом код то подходит на любую форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 04:11 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
For Each obj In Me.Controls Это конечно хорошо. Но надо анализировать каждый контрол и перевычислять его размер и положение, этого мало а шрифты. По умолчанию идет там SanSerif типа, он не труетапе, соответственно его размеры имеют определенный набор, значит надо еще и подгонять контрол под имеющийся размер шрифта. Если использовать труетапе, то надо сперва выяснить какие шрифты есть на компе, скажете Arial, а что у Вас в Worde никогда не появлялись кракозябры, и это всего лишь от того, что в доке используется Arial, а на компе только Arial Cyr. Конечно это классная вещь для сдирания денег или умничинья, рассказал сказки про страшную неполадку, день промурыжил, а потом выдал на гора. А так сам видишь сколько гемора, и даже используя труетапе, надо прикидывать нормально входит шрифт или всеже немного увеличить контрол. Ни одно произведение мелкософта, так не делает, это очень мудрено и жрет процессор и ... Да и использование труетапе все таки дополнительные вычисления (не твои) но проц то пашет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 04:24 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
panuя так иногда делаю Public Const LikeScrWidth As Long = 15360 'ширина экрана..... . . . С уважением Александр Плотников. Спасибо. Очень помог этот код, только пришлось писать для каждого элемента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 11:54 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
gavРебята, спасибо вам за такие хорошие ответы, но вы маленько забыли, что при пересчете размеров формы пересчитываются размеры и положение каждого контрола на ней. В среднем их по 20 шт. на форме, что на каждый контрол такие штуки писать? :) В Form_Resize. Но это не самое интересное - самое интересное это когда юзер меняет масштаб в настройке монитора... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 13:59 |
|
||
|
адаптация форм к разным мониторам
|
|||
|---|---|---|---|
|
#18+
Дурак Можно ввести какие нибудь коэффициенты привязанные к разрешению и в Form_Resizе каждый контролл масшатабировать... Фиксированные размеры форм - это жесто. У нас такое не допускается. Нафига масштабировать диалоговые окна, к примеру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34151957&tid=2164892]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 494ms |

| 0 / 0 |
