4. Написать код, отображающий окно диалога, в ответ на некоторое действие пользователя.

Простое окно диалога "About" ("О...")

Просто для того, чтобы увидеть, как легко создать и отобразить окно диалога, давайте создадим очень простое окно диалога "О..." (About) и подсоединим его к кнопке "О..." на нашем калькуляторе закладных, чтобы окно диалога отображалось при щелчке на этой кнопке.

Выберите File | New Form (или щелкните на быстрой кнопке New Form (Новая форма)), чтобы создать новую форму. Выберите форму Blank из Gallery. (Да, имеется шаблон окна About (т.е. "О..."), но мы обсудим это несколько позже.) Когда отобразится окно New Form, войдите в Object Inspector и измените свойство Caption на "О калькуляторе закладных", свойство Name на "Aboutboxl". Нажмите F2, чтобы сохранить свою работу, назвав модуль ABOUTI.PAS. Затем вернитесь обратно к главной форме. Дважды щелкните на кнопке "О...", чтобы создать обработчик события, и добавьте следующую строку кода к процедуре события:

Aboutboxl.ShowModal

Затем добавьте оператор uses в раздел interface модуля главной формы, указав ABOUTI следующим образом.

uses Abouti;

Сохраните свою работу и нажмите F9, чтобы запустить программу на выполнение. Когда главная форма отобразится, щелкните на кнопке "О...", и при этом должно появиться ваше новое окно диалога "О...".

Да, это действительно так просто. Конечно, окно диалога "О...", спроектированное нами, не является особенно совершенным, но ему легко придать отличный вид. В необъятном мире программирования для Windows легкость создания окон диалога является традиционной, но нечто совсем другое - отображать и манипулировать ими. Даже нечто столь же простое, как наше окно диалога "О...", потребовало бы несколько десятков строк кода на С или на Pascal, предшествовавшем Delphi, и очень детального представления о таких вещах, как процедуры управления экземплярами и экспортируемые функции. (Нет, нет, в этой книге вам это не потребуется!) При использовании Delphi мы написали 2 строки кода, чтобы получить свое окно диалога "О...", и нам вообще не нужно заботиться о деталях внутренней работы Windows.

Окно диалога "О..." является модальным Если оно присутствует на вашем экране, вы не можете переключиться обратно на приложение, породившее его. Вы должны закрыть окно диалога прежде, чем сможете продолжить работу в своем приложении. Если вы хотите создать немодальное окно диалога, то все, что вам нужно для этого сделать - это изменить одну единственную строку кода в своей программе. Просто замените строку в TMortgageForm.btnAboutClick, чтобы она читалась:

Aboutboxl.Show;

а затем перезапустите программу. Теперь окно диалога являестя немодальным, и вы можете осуществлять переключение между ним и главной формой калькулятора закладных по своему желанию.

Следуя традициям Windows

Вы можете создавать модальные и немодальные окна диалога по своему выбору, и в Delphi одно является ничуть не сложнее другого. Вы, наверное, уже привыкли, что при работе в Windows существуют некоторые традиции, и пользователь вполне может ожидать, что определенные части вашей программы будут работать определенным образом. Окна диалога обычно являются модальными и требуют щелчка на кнопке (или другого сигнала от пользователя), чтобы быть убранными. Если вы сделаете свое окно диалога "О..." немодапьным, пользователь может забыть закрыть окно, и оно будет висеть все время, возможно, скрытое позади главной формы или другого окна. Это не причинит реального вреда (за исключением ненужного использования некоторой лишней памяти), но если пользователь внезапно обнаружит не вызвавшееся окно диалога "О..." позади окна File Manager, то может напрасно обратиться в службу технического обслуживания. Поэтому будет полезно разобраться со "стандартной практикой" в программировании для Windows, чтобы ваши пользователи не были удивлены тем, что они делают.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31