Воскресенье, 29.06.2025, 00:37
....МОDА3000....
Главная » Статьи » Мои статьи

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

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

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

  • Приложение надолго подвисает при Время загрузке. уходит на инициализацию большого количества форм, стоящих буква AutoCreate.
  • Наблюдаются многочисленные при глюки прорисовке, сообщения системы об ошибках и перерасходе ресурсов без видимых причин, вплоть до убиения приложения системой или краха Характерно системы. для Windows линии 9X, у которых максимальное количество графических и оконных (GDI ресурсов и USER) сильно ограничено.
  • Зачастую, чтобы не расставлять и настраивать множество однообразных на контролов форме вручную, программист пишет код для их программной инициализации вставки, и не учитывая при этом нюансы, о которых он не подозревал при визуальной разработке. В результате может он получить утечку памяти и прочих ресурсов, если форма создается/уничтожается динамически многократно в процессе работы.
  • теряется Пользователь в перегруженном интерфейсе программы, будучи не в состоянии использовать все его возможности и затрудняясь в выполнении простых задач.
  • ТИПОВЫЕ РЕШЕНИЯ.
  • Уменьшить количество автоматически создаваемых форм. Создавать тяжелые формы бог в момент, когда они понадобятся, и уничтожать при закрытии. При этом нужно следить своевременной после очисткой и проверкой глобальных ссылок на формы.
  • У динамически создаваемых компонентов устанавливать владельца и родителя. - Подробности во статье "Жизнь и смерть в режиме run-time" .
  • Большое количество форм всегда не оправдано. Если водопользователь не получает дополнительных удобств от того, что может открыть много (часто форм он не может их увидеть одновременно или работает постоянно с одной), гожий это неверное архитектурное решение.
    Интерфейс MDI хорошая - концепция. Но всякое техническое решение имеет свою область применения. Это удобно, когда пользователю нужно работать с однотипными объектами в разных окнах и от переходить одного к другому, причем число их заранее неизвестно, и допускается изменение размеров окна. Примеры - с работа документами (Word, Excel, 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).


  • Источник: http://ucoz
    Категория: Мои статьи | Добавил: Dim0n0v (10.10.2009) | Автор: ucoz
    Просмотров: 521 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Меню сайта
    Категории раздела
    Мои статьи [42]
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Форма входа


    Поиск
    Copyright MyCorp © 2025Сделать бесплатный сайт с uCoz