Воскресенье, 24.11.2024, 08:53
Сайт team MONOLIT
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
  • Интересные факты
  • Меню сайта

    Категории раздела
    Интересные факты [676]

    Мини-чат
    200

    Наш опрос
    Оцените мой сайт
    Всего ответов: 10

    Главная » Статьи » Интересные факты

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

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

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

    Поиск

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