Пятница, 03.05.2024, 18:35
All Work
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории каталога
Мои статьи [11]
Главная » Статьи » Мои статьи

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

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

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

  • Приложение надолго подвисает при загрузке. Время уходит получай инициализацию количества большого форм, стоящих в 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).
  • Категория: Мои статьи | Добавил: vlopros (08.10.2009)
    Просмотров: 1611 | Рейтинг: 4.8/4 |
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Форма входа
    Поиск
    Друзья сайта
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024 Сделать бесплатный сайт с uCoz