Приветствую Вас Гость | RSS Пятница
30.01.2026, 04:34
LIEX - PARTNER
Форма входа
Главная Каталог статей Регистрация Вход
Меню сайта
Категории раздела
Мои статьи [175]
Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 16
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Мои статьи

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

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

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

  • Приложение надолго при подвисает загрузке. Время уходит возьми инициализацию большого количества форм, стоящих в 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
    Категория: Мои статьи | Добавил: LiexBOT (23.10.2009) | Автор: ucoz
    Просмотров: 784 | Комментарии: 3 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:

    Copyright MyCorp © 2026Бесплатный хостинг uCoz