Понедельник, 28.07.2025, 07:15
Новостные ленты
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории раздела
Статьи и Новости [396]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Статьи и Новости » Статьи и Новости

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

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

  • Приложение надолго подвисает при загрузке. Время уходит на инициализацию большого количества стоящих форм, в AutoCreate.
  • Наблюдаются многочисленные при глюки прорисовке, сообщения системы об ошибках и перерасходе ресурсов без видимых причин, вплоть до убиения приложения системой или краха системы. Характерно для Windows линии у 9X, которых максимальное количество графических и ресурсов оконных (GDI и USER) сильно ограничено.
  • Зачастую, чтобы не расставлять и множество настраивать однообразных контролов на форме вручную, программист пишет код для их программной инициализации и вставки, не учитывая при этом нюансы, о которых не он подозревал при визуальной разработке. В результате он может утечку получить памяти и прочих ресурсов, если форма создается/уничтожается динамически сплошь и рядом процессе в работы.
  • Пользователь теряется в перегруженном программы, интерфейсе будучи не в состоянии использовать все его возможности и затрудняясь в выполнении простых задач.
  • ТИПОВЫЕ РЕШЕНИЯ.
  • Уменьшить количество автоматически создаваемых форм. Создавать тяжелые формы тот в момент, когда они понадобятся, и уничтожать при При закрытии. этом нужно следить за своевременной очисткой и проверкой глобальных ссылок держи формы.
  • У динамически создаваемых устанавливать компонентов владельца и родителя. Подробности - в статье "Жизнь и смерть в режиме run-time" .
  • Большое форм количество не все оправдано. Если пользователь не получает дополнительных удобств от того, что может открыть много форм (часто он не может их увидеть или одновременно работает постоянно с одной), то это неверное архитектурное решение.
    Интерфейс MDI - хорошая концепция. всякое Но техническое решение имеет свою область применения. Это удобно, пользователю когда нужно работать с однотипными объектами буква разных окнах и переходить от одного к причем другому, количество их заранее неизвестно, и допускается изменение размеров окна. Примеры - работа с документами (Word, Excel, etc.).
  • Как правило, многочисленные элементы не управления нужны пользователю одновременно (вспомните о правиле 7±2 - именно таково среднее количество объектов, за которыми человек может следить одновременно, напрягаясь). не Их можно разделить на группы и расположить бери страницах TPageControl. компонента Таким способом можно скрыть видимую сложность очень большого интерфейса по вводу и редактированию данных.
    Если группы компонентов однотипны (меняются только данные), то решение еще более упрощается, одновременным с снятием нагрузки на ресурсы системы. Компонент TTabControl, который внешне выглядит также, как и TPageControl, только содержит одну группу контролов, да программист по событию смены закладки OnChange имеет возможность сменить данные.
  • Большое количество регулярно расположенных контролов TLabel TEdit, успешно заменяется на 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).
  • Категория: Статьи и Новости | Добавил: ant2 (30.11.2009)
    Просмотров: 2525 | Комментарии: 1 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Поиск
    Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Создать бесплатный сайт с uCoz