GTA 4. Grand Theft Auto IV/ Обзоры. Коды. Секреты. Прохождения
 Menu:                 ГЛАВНАЯ   СКАЧАТЬ   ОБЗОРЫ   ПРОЧЕЕ

Навороченные формы с огромным количеством визуальных компонентов, помноженные

Навороченные формы с огромным количеством визуальных компонентов, помноженные на количество этих форм, вызвать могут ряд серьезных проблем при разработке использовании и программы.

  • Приложение надолго подвисает при загрузке. Время уходит на инициализацию большого количества форм, стоящих AutoCreate. в
  • Наблюдаются многочисленные глюки при прорисовке, сообщения системы об ошибках и перерасходе без ресурсов видимых причин, вплоть до убиения приложения системой или краха системы. Характерно для Windows 9X, линии дли которых максимальное количество и графических оконных ресурсов (GDI и USER) по первое число ограничено.
  • Зачастую, не чтобы расставлять и настраивать множество однообразных контролов на форме вручную, программист пишет код для программной их инициализации и вставки, не учитывая при этом нюансы, о которых он не подозревал визуальной при разработке. В результате он может получить утечку памяти и прочих ресурсов, если форма создается/уничтожается динамически многократно в процессе работы.
  • Пользователь в теряется перегруженном интерфейсе программы, будучи не в состоянии использовать все его возможности и затрудняясь в выполнении простых задач.
  • ТИПОВЫЕ РЕШЕНИЯ.
  • Уменьшить количество автоматически создаваемых форм. Создавать тяжелые формы в момент, тот когда они понадобятся, и уничтожать при закрытии. При этом нужно следить за своевременной очисткой и проверкой глобальных на ссылок формы.
  • У динамически создаваемых компонентов устанавливать владельца и родителя. Подробности - в статье "Жизнь и смерть в режиме run-time" .
  • Большое количество форм не всегда оправдано. Если пользователь не дополнительных получает удобств от того, что может открыть вволюшку форм (часто он не может их увидеть одновременно еда постоянно работает с одной), то это неверное архитектурное решение.
    Интерфейс MDI - хорошая концепция. Но всякое техническое решение имеет свою применения. область Это удобно, когда пользователю работать нужно с однотипными объектами в разных окнах и переходить от одного к другому, причем количество их заранее неизвестно, и допускается размеров изменение окна. Примеры - работа с документами Excel, (Word, etc.).
  • правило, Как многочисленные элементы управления не нужны пользователю одновременно (вспомните о правиле 7±2 - именно таково среднее количество объектов, за которыми человек может одновременно, следить не напрягаясь). Их можно разделить группы на и расположить на страницах компонента TPageControl. Таким способом можно скрыть видимую сложность очень большого по интерфейса вводу и редактированию данных.
    Если группы компонентов однотипны (меняются только данные), то решение еще более упрощается, с снятием одновременным нагрузки на ресурсы системы. Компонент TTabControl, еликий выглядит внешне также, как и TPageControl, содержит только одну группу контролов, а программист по событию смены закладки OnChange возможность имеет сменить данные.
  • Большое количество регулярно расположенных контролов TEdit, TLabel небезуспешно на заменяется TStringGrid, специально для этого предназначенный. Кроме всего прочего, он имеет удобную размеры прокрутку, таблицы не будут ограничены размерами формы.
    В случае, если нужно много применяют TComboBox, следующую хитрость. Для визуализации используют TStringGrid, а для редактирования в ячейку текущую вставляют TComboBox, устанавливая ему размеры и координаты по ячейке и набивая его программно (если набор элементов Один меняется). и тот же экземпляр редактирующего контрола используется во ячейках, всех поскольку он не нужен одновременно везде. Эта же техника используется и в VCL для редактирования ячеек TStringGrid, TDBGrid.
    Есть масса типа компонентов TStringGrid сторонних разработчиков, которые расширяют возможности стандартного.
  • DB-aware визуальные компоненты - такие как TDBGrid - способны обрабатывать огромный данных, объем не требуя при этом пропорциональное количество ресурсов В GDI/USER. конце концов, если не хочется связываться с СУБД, можно загнать информацию в TClientDataSet и кормить него из DB-aware controls на форме. Одновременно получаешь все прелести сортировки и фильтрации данных.
    В случае сложного контролов набора для каждой записи, при необходимости видеть несколько таких групп одновременно, хорошо подходит компонент TDBCtrlGrid.
  • Следует стремиться уменьшить количество компонентов - потомков TWinControl (например - TButton), их заменяя на потомки TGraphicControl (пример - TSpeedButton). Последние не используют объекты USER, поскольку не являются в окнами понятиях Windows.
  • Рекомендуется разрабатывать и эксплуатировать ресурсоемкие приложения в среде Windows и NT ее наследников (2000, XP).
  • Реклама               
    Hosted by uCoz