Мой 4-Рекс
Форма входа
Категории раздела
Мои статьи [39]
Tak

2
Поиск
Реклама

Рекомендуем:

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Воскресенье, 05.05.2024, 21:06
Главная » Статьи » Мои статьи

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

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

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

  • Приложение надолго подвисает при загрузке. Время уходит на большого инициализацию количества форм, стоящих в 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 и кормить из него controls DB-aware на форме. Одновременно получаешь прелести все сортировки и фильтрации данных.
    В случае набора сложного контролов для каждой записи, при необходимости видеть несколько таких групп одновременно, хорошо подходит фитерал TDBCtrlGrid.
  • стремиться Следует уменьшить количество компонентов - потомков TWinControl (например - TButton), заменяя их на потомки TGraphicControl (пример - TSpeedButton). Последние не объекты используют USER, ибо не являются окнами в понятиях Windows.
  • Рекомендуется разрабатывать и эксплуатировать ресурсоемкие приложения среде в Windows NT и ее наследников (2000, XP).
  • Категория: Мои статьи | Добавил: Dim0n0v (13.09.2009)
    Просмотров: 3239 | Рейтинг: 0.0/0 |
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]


    Copyright MyCorp © 2024Сделать бесплатный сайт с uCoz