Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Разрешение экрана юзера и большая форма


Автор: ИгнатьевАлексей 26.12.2006, 11:45
Господа! Подскажите, плз!

Вот есть у меня форма огромная, на ней контролов куча. На своем компе с разрешением 1600-1200 я еле-еле уместил эти контролы на форме. Юзер, естественно, будет пытаться запустить мою прогу на меньших экранных резрешениях.
Почитал я посты на нашем люБимом форуме, и понял, что в таких случаях приходится программно располагать контролы при первичной загрузке формы (или неправильно понял?). Но в моем случае это навряд-ли получится, т.к. и при 1600-1200 я с трудом все разместил. Хочется использовать полосы прокрутки, т.е. , если у юзера разрешение компа 1600-1200, то он видит всю форму целиком, а если ниже, то пускай полосками прокрутки орудует.
Вопрос в следующем - как это все сделать с наименьшими затратами? Может свойство какое у окна есть, чтобы оно само это организовало? Или вручную это прописывать все?  smile 

Заранее благодарен!

Автор: mihanik 26.12.2006, 13:09
Цитата(ИгнатьевАлексей @  26.12.2006,  11:45 Найти цитируемый пост)
Вот есть у меня форма огромная, на ней контролов куча. На своем компе с разрешением 1600-1200 я еле-еле уместил эти контролы на форме. 


Ну...
Это не дело!!!
Когда контролов много, то это плохо смотрится.
Не надо повторять ошибки разработчиков ЕГАИС. У них тоже много чего наверчено на форме...

Лучше воспользоваться "закладками", созданными по какому-нибудь смыслу.
Или организовать меню....

А форму скролить - последнее дело!!!

Автор: anian 26.12.2006, 13:10
Свойства у окна нету

Вот тебе http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=31896&lngWId=1  на контрол, который реализует такое дело

to mihanik:
А ежели это какой-нить АРМ какого-нить агрегата, хде куча показаний выводится и все такое?
Мало ли как...хочет человек скролить, хай скролит

Автор: ИгнатьевАлексей 26.12.2006, 13:20
anian, спасибо, попробую!


mihanik, у меня форма - будущая страница, где все в комплексе смотреть надобно, вот и не знаю, как быть. Скроллинг, в принципе, помог бы, имхо....

Автор: Naghual 26.12.2006, 22:47
Цитата(ИгнатьевАлексей @  26.12.2006,  13:20 Найти цитируемый пост)
у меня форма - будущая страница, где все в комплексе смотреть надобно, вот и не знаю, как быть

А по подробнее?

Автор: ИгнатьевАлексей 27.12.2006, 12:37
Naghual, Речь идет о генераторе функциональных схем. Юзер набирает на форме необходимую инфу..... Я пытаюсь сделать это удобно, т.е. автозаполнение, проверка и т.п. Фишка в том, что на этой форме еще и OLE-объект Visio. Юзер кликает по этому объекту, открывается Visio, юзер рисует часть схемы, сохраняет. А на форме производится ввод дополнительной инфы....Потом жмем на кнопку, и прога вырисовывает всю диаграмму, сохраняет в БД ....... Таким образом, мне никак закладки не сделать, как многоуважаемый mihanik советует..... Причем прогу эту я не сам придумал, а идею увидел у конкурентов, и у них форма красиво скролится. Вот так все запущено.... Буду рад советам!!!

mihanik вот объясни мне такую вещь, плз! Вот, допустим, пишу я прогу для продажи, т.е. для многих машин. Много машин - разные разрешения. Как быть? Предположить самое маленькое разрешение, расставить контролы и быть спокойным. А те парни, у которых хорошее разрешение, пусть видят маленькое окошко, так что ли. Или учитывать всевозможные разрешения? Как это делается?

Автор: Naghual 27.12.2006, 12:47
Эка вы замахнулись... С размахом...

А не будет ли более рациональным, вызывать Visio по кнопке, а не через видимый оле?
Ну и, для полной ясности, может предоставите нам скриншот вашего творения?

Автор: mihanik 27.12.2006, 13:01
Цитата(ИгнатьевАлексей @  27.12.2006,  12:37 Найти цитируемый пост)
mihanik вот объясни мне такую вещь.....


М-да...
Ну,  и задачка же у тебя...
Тады - да.
Тады - ой.
Или скролинг, или какое-нибудь нетривиальное решение...
Это вам не шахматы, - тут думать надо...

Автор: ИгнатьевАлексей 27.12.2006, 13:08
Naghual
Цитата

Эка вы замахнулись... С размахом...

Да не будь я поклонником и постоянным болельщиком Винграда!

Цитата

А не будет ли более рациональным, вызывать Visio по кнопке, а не через видимый оле?

А какая разница? Могу и кнопку сделать! Вся фишка в том, что юзер, заполняя поля с инфой, смотрит и на рисунок в видимом OLE.

Цитата

Ну и, для полной ясности, может предоставите нам скриншот вашего творения? 

Пожалуйста! Только как это сделать? Скриншот 5 метров.

Добавлено @ 13:10 
mihanik, Так как же исе нормальные программисты поступают, когда форму надо во весь экран делать? Мне это очень интересно!

Автор: mihanik 27.12.2006, 13:11
Цитата(ИгнатьевАлексей @  27.12.2006,  13:08 Найти цитируемый пост)
Скриншот 5 метров


gif - 8 цветов, 72 dpi?

Автор: ИгнатьевАлексей 27.12.2006, 13:14
mihanik, а как тут вообще файлики вкладываются? Не пойму!

Автор: Naghual 27.12.2006, 13:18
Используй кнопку "Ответить" в низу топиков а не пользуйся формой быстрого ответа.
Вот тогда и увидиш КАК прикрепить файл.

Автор: ИгнатьевАлексей 27.12.2006, 13:38
Ну вот. Смотрите. Это эскизный вариант, разрешение - 1200-1600. Внизу еще заполнение штампа планируется.

Автор: Naghual 27.12.2006, 13:45
Ой, б.....
А это что?  Уже даже интересно...
Ты поясни функционал...

Добавлено @ 13:46 
По центру - это Visio?

Автор: ИгнатьевАлексей 27.12.2006, 13:55
Цитата

Ты поясни функционал...

Это набросок только. Функционального смысла не имеет. А откуда такой интерес? Это из области автоматизации технологических процессов.
Цитата

По центру - это Visio? 

Точно!

Автор: Naghual 27.12.2006, 14:05
Цитата(ИгнатьевАлексей @  27.12.2006,  13:55 Найти цитируемый пост)
Функционального смысла не имеет

Очень плохо! А если при реализации функционала, ты прийдеш к выводу, что вообще ВИД самой формы неприемлим? - тогда мы попросту переводим свое время!!!
Ты бы определился все-таки...

Цитата(ИгнатьевАлексей @  27.12.2006,  13:55 Найти цитируемый пост)
А откуда такой интерес?

Не разобравшись в сути вопроса - не помогу.


Если пользователь изменить объект Visio и по ходу нарушит расположение/растояние/и.т.д. пронумерованных квадратов, то все на смарку!

Автор: mihanik 27.12.2006, 14:13
Цитата(ИгнатьевАлексей @  27.12.2006,  13:08 Найти цитируемый пост)
mihanik, Так как же исе нормальные программисты поступают, когда форму надо во весь экран делать? Мне это очень интересно! 


Понятия не имею.
Я - "ненормальный" программист.

Но идея прорисовывается....
У тебя на форме туча комбобоксов...
А если делать прокрутку только вот этих вот комбобоксов, а не всей формы.
Т.е. разместить их в эдаком фрейме...
Правда у фрейма нет прокрутки.
Придётся врукопашную всё это дело мутить...


Автор: ИгнатьевАлексей 27.12.2006, 14:24
Naghual, С удовольствием поясняю. Эта форма - прототип функциональных схем, которые утверждены в нашей конторе испокон века. Юзер работает так: 
- в основной программе нажимает кнопку "Новая функц. схема"
- открывается форма, которую ты видел
- кликает по интегрированному OLE и рисует серединку, т.е. выбирает один из функциональных блоков устройства (в данном случае - контроллер), прорисовывает логику при помощи всем известных блочков типа "И", "ИЛИ" и др.
- закрывает Visio с сохранением
- работает с формой, т.е. заполняет входные и выходные сигналы. Тут я организовываю все удобства и проверки, дабы исключить ошибки
- сохраняет все в БД. Генерирует самостоятельный лист Visio, печатает и т.п.

Конечно же после этого глупый юзер может снова открыть OLE для редактирования и сломать все нафиг, но зачем это делать? Однако, если это произойдет, то на форме будет видно несоответствие. Поэтому мне и надо всю форму целиком показывать! И если бы у всех людей на планете на компах было 1600-1200, то проблем бы у меня не было! smile

Добавлено @ 14:28 
mihanik, спасибо за ответ! Скроллить буду, но все целиком. В принципе, то, что предложил уважаемый в начале поста (ссылка имеется ввиду) работает, но там еще поработать надо будет. Но я недоумеваю, почему это не предусмотрено на уровне стандартных средств! Ведь это везде применяется в Виндах! smile 

Автор: Naghual 27.12.2006, 14:31
Мда...  Таки без прокрутки никак...
Вот только горизонтальную прокрутку реализовать всего двумя состояниями: 
1. Поля с лева и Визио;
2. Визио и Поля с права.

И прокрутку делать не всего окна, а конкретно той части, где ты намутил туеву хучу контролов.

Автор: ИгнатьевАлексей 27.12.2006, 14:35
Цитата

И прокрутку делать не всего окна, а конкретно той части, где ты намутил туеву хучу контролов. 

Ну как же не всего, если это все взаимосвязано? Вся и наглядность в том!
Цитата

туеву хучу контролов

Массив - величайшее изобретение человечества! smile 
Я и рад бы не мутить, да не знаю таких контролов, чтобы таблици из строк вводить, да автозаполнение организовать!

Автор: Naghual 27.12.2006, 15:18
Цитата
Ну как же не всего, если это все взаимосвязано? Вся и наглядность в том!

Я лиш подразумевал прокрутку Красной области, но Не Синей.

Автор: mihanik 27.12.2006, 15:38
Я мел в виду то, что предложил Naghual.

Так грамотно будет...

Автор: ИгнатьевАлексей 27.12.2006, 16:33
Naghual
mihanik
Совершенно согласен, господа! Спасибо вам!
Тему пока не закрываю. anian предложил хорошую вещь, но надо с ней работать еще.... 
Может кто еще чего посоветует дельное!

Автор: Naghual 27.12.2006, 17:02
Цитата(ИгнатьевАлексей @  27.12.2006,  16:33 Найти цитируемый пост)
Может кто еще чего посоветует дельное!


Ну можно отказатся от Массива Комбиков.  smile
Показывай текущие значения параметров простыми Лейблами. (Оно и по памяти выгоднее на много получится).
А при клике на лейбл, перемести невидимый комбик на новую позицию (позиция кликнутого лейбла), заполните его значениями и отобразите. 
Получится нечто вроде поведения окна Свойств объектов в ВБ.

Автор: ИгнатьевАлексей 27.12.2006, 19:42
Naghual, Дельно! Спасибо, попробую! Возможно и выглядеть будет не так дико!

Автор: profispb 30.12.2006, 12:53
Лучше создать ерархическое меню, закладки или формы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)