![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите, пожалуйста, про диалоговое окно
kreyl © (2005-09-30 18:45:00)Borland Delphi 2005
Есть простой проект VCL forms Application-Win32. В проекте, собственно, есть главная форма (form1). На форме - кнопка, по нажатию на которую должна вывестись вспомогательная форма (form2), в каковой получаются данные от пользователя. По нажатию кнопки ОК на второй форме оная должна закрыться, а введенные данные должны быть переданы в первую форму.
То есть, классический диалог.
В книжке "Delphi8 для .NET" это описано вполне подробно, однако пример не работает для не .NET. Там написано, в частности, в процедуре кнопки вызова второй формы:
var
dr: System.Windows.Forms.DialogResult;
begin
InputBox:= WinForm2.TwinForm.Create; // у меня тут потребовалось .Create(Application)
dr:=InputBox.ShowDialog(); // Это, как пишут, должно выводить окно как диалог. Однако метода ShowDialog у меня, видимо, нет.
if (dr=System.Windows.Forms.DialogResult.OK) then
// тут, собственно, обработка данных.
kreyl (2005-09-30 20:09:00) [1]Большое спасибо! Всё очень кстати.
AlexWlad (2005-09-30 19:51:00) [2]Если пишешь Win32 приложение - зачем пользовать .Netные фишки.
if (InputBox.ShowModal=mrOK) then ...
и все дела...
Anatoly Podgoretsky (2005-09-30 19:48:00) [3]ShowModal
SMATMP (2005-09-30 19:38:00) [4]Может быть я не понимаю сути вопроса...
Чем не устраивают Form.Showи Form.Hide?
Скажем на Form1 есть Button1, а на Form2 - тоже Button1. По умолчанию Form2.Visible должна быть установлена в False (второй формы не видно). При нажатии на Button1 формы Form1 (TForm1.Button1Click) происходит Form2.Show. При нажатии же на Button1 формы Form2 (TForm2.Button1Click) происходит множество присвоений пользовательских значений и в конце - Form2.Hide. И все. Предварительно, правда, необходимо зарегестрировать Form2 в Form1 (после implementation, скажем):
...
implementation
uses Unit2;
{$R *.DFM}
...
Предполагается, что Form2 описывает модуль с именем Unit2. Возможно и другое - в этом случае необходимо откорректировать прогу.
Всех благ.