| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Формы приложения могут быть модальными и немодальными.
Главной характерной особенностью модальной формы является то, что она приостанавливает выполнение вызвавшей ее процедуры до тех пор, пока пользователь ее не закроет. Кроме того модальная форма не позволяет пользователю переключить фокус курсором мыши на другие формы данного приложения, пока модальная форма не будет закрыта. В результате пользователь должен выполнить определенные действия, предлагаемые модальной формой, прежде чем сможет далее продолжить работу с приложением. В качестве модальной могут выступать формы типа AboutBox, различного рода справочники и т.д. Разработчик приложения в зависимости от задач, которые должна решить форма, должен сам определить, будет она модальной или же немодальной. Остановимся подробнее на модальной форме. Поведение модальной формы определяется ее основным свойством ModalResult, доступным только во время выполнения. При открытии формы методом ShowModal свойство ModalResult=0. Как только в результате каких-либо определенных событий на форме свойству ModalResult будет присвоено положительное целое значение (в зависимости от версии C++ Builder) от 1 до 8 (для 5 версии) и до 10 (для 6 версии), модальная форма закроется и пользователь продолжит работу с приложением. Численные значения и константы им соответствующие можно посмотреть во встроенной справке C++ Builder. Модальную форму можно создать и удалить в той же области действия, что гарантированно предотвратит утечку памяти. Для этого форма не должна создаваться автоматически. С этой целью необходимо удалить ее из списка AutoCreate Forms вкладки Forms диалогового окна Project --> Options. Затем из файла с расширением .cpp удаляется или комментируется строка: TFormX * FormX; а из файла с расширением .h удаляется или комментируется строка: extern PACKAGE TFormX * FormX; Для использования модальной формы создается следующая конструкция: TFormX * FormX = new TFormX(0);
try
{
FormX->ShowModal();
}
__finally
{
delete FormX;
}
Использование блока try/__finally гарантирует защищенность кода при возникновении исключительной ситуации, т.е. в случае исключительной ситуации форма будет удалена. Не стоит применять код вида: TFormX * FormX = new TFormX(0); FormX->ShowModal(); delete FormX; Причина - если исключительная ситуация возникнет между событиями создания и удаления формы, то эта форма никогда не будет удалена. Также не стоит для удаления объекта библиотеки VCL использовать метод Free(). Лучше использовать метод delete, гарантированно вызывающий деструктор объекта и освобождающий память, выделенную оператором new. Успехов Вам!
www.bcbsql.front.ru
Автор:Доцу Виктор Рубрика: C++ Builder
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|