На этом уроке изучим работу с диалоговыми окнами. Скорей всего в вашем приложении будет не одно диалоговое окно. Давайте посмотрим, как добавить в программу еще одно диалоговое окно, которое будет появляться при выборе соответствующего пункта меню. В появившемся диалоговом окне мы зададим некоторые параметры, которые передадутся затем в главное окно нашего приложения.
Создайте новый проект на Delphi, добавьте на форму компонент MainMenu, в редакторе меню добавьте пункт меню Tools и подпункт для него Options. Для меню Options создайте обработчик. Для добавления еще одного окна в программу нажмите на кнопку New Form на панели инструментов View (четвертая кнопка слева). Появится форма с именем Form2 по умолчанию.
Теперь добавьте в новую форму edit и две кнопки и задайте для кнопок надписи OK и Cancel.
В обработчики для этих кнопок добавьте следующий код:
procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
ModalResult:=mrOK;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Close;
ModalResult:=mrCancel;
end;
Код тут достаточно прозрачен - Close закрывает форму, а в ModalResult записывается результат (mrOK для кнопки OK и mrCancel для кнопки Cancel). Теперь возвращаемся к коду основной формы.
Пишем для обработчика нашего меню следующий код:
procedure TForm1.Options1Click(Sender: TObject);
var
res : TModalResult;
begin
res := Form2.ShowModal;
if res=mrOK then //Если нажата кнопка OK
Form1.Caption:=Form2.Edit1.Text;
end;
Смысл этого кода следующий: переменная res служит для сохранения результата выполнения второго диалога (т. е. нажал ли пользователь OK или Cancel). И если пользователь нажал OK, то введенную пользователем строку мы показываем в заголовке нашего основного окна. Теперь остается еще одна проблема. Дело в том, что мы в нашем основном окне (Form1) используем Form2. Но Form2 пока не видна. Для исправления этого добавьте в код Form1 ссылку на Form2. Теперь можно запускать программу и передавать данные из второго диалогового окна в заголовок первого.
Всё на этом урок закончен.