сейчас делаю так: по нажатии на кнопку
- Код: Выделить всё
{создаем форму}
SForm:=TSForm.Create(self);
{показываем форму}
SForm.ShowModal;
при этом из вновь созданной формы SForm нельзя обратиться к форме MForm из которой был вызов на ее создание
Модератор: Модераторы
{создаем форму}
SForm:=TSForm.Create(self);
{показываем форму}
SForm.ShowModal;
NewUser писал(а):нужно из формы А создать форму Б, причем необходимо, чтобы одновременно можно было работать с двумя формами.
SForm.Show;
NewUser писал(а):при этом из вновь созданной формы SForm нельзя обратиться к форме MForm из которой был вызов на ее создание
uses юнит_с_формой_А
TSFrom = class (TForm)
...
public
function Execute(<аргументы выходные-выходные>): <код возврата, иногда Boolean>;
...
function TSFrom.Execute(<аргументы>): <код возврата>;
begin
<инициализация формы - заполнение полей>
if ShowModal = mrOk then <что-то делаем>
else <делаем что-то другое>
<еще что-нибудь можно сделать, например Free если тебе форма нужна только на время вызова>
end;
TSFrom = class (TForm)
...
public
{!} class function Execute(<аргументы выходные-выходные>): <код возврата, иногда Boolean>;
...
class function TSFrom.Execute(<аргументы>): <код возврата>;
var Form: TForm1;
begin
// воздаем форму
Form := TForm1.Create;
try
// инициализируем форму
From.Init(<аргументы>);
// показываем форму
Form.ShowModal;
// завершаем работу, сохраняем если надо данные, возвращаем результаты
Result := From.Finish(<аргументы>);
finally
// удаляем форму за не надобностью
Form.Free;
end;
end;
if TSFrom.Execute(<аргументы>) then ...
else ...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35