Кент Рейсдорф. BORLAND C++BUILDER. Раздел 2
Кент Рейсдорф. BORLAND C++BUILDER. Страница 228
Таблица 8.7 Константы VCL для ModalResult
Имя константы | Значение |
mrNone | 0 |
mrOk | 1 |
mrCancel | 2 |
mrAbort | 3 |
mrRetry | 4 |
mrlgnore | 5 |
mrYes | 6 |
mrNo | 7 |
mrAII | 8 |
На прилагаемом к книге компакт-диске находится программа ButtnTst, демонстрирующая использование свойства ModalResult. Программа отображает форму с несколькими кнопками. Когда вы нажимаете одну из кнопок, значение ModalResult возвращается главной форме.
Свойство Default
Свойство Default — другое ключевое свойство кнопок. Windows имеет стандартный механизм работы с диалоговыми окнами. Одно из правил работы этого механизма звучит следующим образом: если фокус ввода с клавиатуры находится в элементе управления, который не является кнопкой, и пользователь нажал на клавиатуре Enter, диалоговое окно будет вести себя так, как если бы пользователь нажал кнопку по умолчанию (default button). Заданная по умолчанию кнопка — это кнопка, для которой установлен стиль BS_DE- FPUSHBUTTON (обычно это кнопка ОК). Эта особенность Windows в течение многих лет была проклятием программистов и пользователей, занимающихся вводом данных. Свойство Default используется для определения заданной по умолчанию кнопки формы. По умолчанию оно имеет значение false. Чтобы сделать кнопку заданной по умолчанию, установите для свойства Default значение true. Если вы специально не устанавливали свойство Default ни для одной кнопки, форма не будет закрываться при нажатии клавиши Enter.
Свойство Cancel
Свойство Cancel работает с клавишей Esc аналогично тому, как свойству Default работает с клавишей Enter. Когда пользователь нажимает Esc, чтобы закрыть форму, возвращаемое ShowModal() значение будет значением свойства ModalResult той кнопки, для которой свойство Cancel установлено в true. Если ни у одной кнопки формы свойство Cancel не имеет значения true, то при закрытии формы по клавише Esc будет возвращено значение mrCancel (mrCan- cel равно 2; см. таблицу 8.7).