Как сделать простой метод, переключающий между формами? Как мне добавить возвращаемые результаты к моей ShowModal-форме? Как мне создавать экземпляры форм во время выполнения приложения? Необходимый для осуществления этого метод очень прост. В моем примере я использую 3 формы с именами Mainform, Form1 и Form2. На Mainform я установил кнопку, которая выводит Form1, из нее вы можете вызвать любое количество форм (перемещаться между ними) через соответствующие кнопки, расположенные на этих формах. В моем примере "переключение" происходит между формами Form1 и Form2. Шаг 1. Разместите следующие две строчки в секции interface той формы, которая у вас будет главной: const mrNext = 100; mrPrevious = 101; Шаг 2. Разместите на главной форме кнопку и добавьте следующий код в обработчик события ее нажатия: var MyForm: TForm; R, CurForm: Integer; begin R := 0; CurForm := 1; while R <> mrCancel do begin Case CurForm of 1: MyForm := TForm1.Create(Application); 2: MyForm := TForm2.Create(Application); end; try R := MyForm.ShowModal; finally MyForm.Free; end; case R of MrNext : Inc(CurForm); MrPrevious : Dec(CurForm); end; // эти 2 строчки позволят нам не выходить за границы if CurForm < 1 then CurForm := 2 else if CurForm > 2 then CurForm := 1; end; // while end; Шаг 3. Добавьте формы 1 и 2 (и любые другие, какие вы хотите иметь) в список используемых модулей формы MainForm. Шаг 4. В форме Form1 и Form2 добавьте MainForm в список используемых модулей (чтобы они видели константы.) Шаг 5. На форму Form1, Form2, и все последующие, добавьте 2 TBitBtn'а, с заголовками "Next" и "Previous". In the OnClick Events for these buttons add the following line of code. Если это кнопка Next, добавьте: ModalResult := mrNext; Если это кнопка Previous, добавьте: ModalResult := mrPrevious; |