Підкажіть, будь ласка, про діалогове вікно
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 // тут, власне, обробка даних.
Можливо, я не розумію суті питання. Чим не влаштовують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, скажімо): .
Передбачається, що Form2 визначає модуль з ім'ям Unit2. Можливо й інше - у разі необхідно відкоригувати прогу. Всіх благ.
Якщо пишеш Win32 додаток - навіщо користувати .Netні фішки. if (InputBox.ShowModal=mrOK)then . і всі справи.
←→kreyl (2005-09-30 20:09) [4]
Велике дякую! Все дуже до речі.