 |
Статистика |
 |
|
Онлайн всего: 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 |
|
|
|