![]() |
|
|
#1
|
|||
|
|||
|
Проблема в переходе по формам.
Создаю модальную форму от родителя. Код:
with Tform1.create(nil) do try showmodal; finally free; end; И в этой форме хочу обратиться к родителю. Чтобы он стал виден с данными из этой модальной формы. Но прикол в том, чтобы модальная не закрывалась. Какие есть предложения? Плиз, надо срочно. Последний раз редактировалось lmikle, 22.09.2011 в 23:48. |
|
#2
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Unit2,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with TForm2.Create(Self) do
begin
ShowModal;
Free;
end;
end;
end.Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
Label1.Caption:=TForm(Owner).Caption;
end;
end. |
|
#3
|
|||
|
|||
|
if (reserv_show=1) then
Form_WHReserv.showmodal else with TForm_WHReserv.Create(self) do try BEGIN reserv_show:=1; ... ShowModal; if modalresult=mrok then begin ... end; finally close; end; Здесь я специально закрываю форму close а не free. Но при Form_WHReserv.show всеравно выкидывает ошибку. В чем мой косяк? Или чего-то не догоняю... Последний раз редактировалось kizl, 30.09.2011 в 10:08. |
|
#4
|
|||
|
|||
|
Hide или в OnClose~Action = cahide
|
|
#5
|
|||
|
|||
|
на закрытие action:=cahide не принимает, возможно из-за delphi 5
Сделал finally hide и проставил вывод сообщений, так он сначало закрывает, а потом скрывает. и в результате на просмотр(повторный) выдает ошибку |
|
#6
|
|||
|
|||
|
чёт я затупил с хайдом он вобще не при чём
а модальную форму обязательно динамически создавать? |
|
#7
|
|||
|
|||
|
Прикол в том что весь проект завязан на модальных формах. Предыдущие формы все модальные, Впринципе я могу сделать эту форму обычной, но проблема всеравно останется.
|
|
#8
|
|||
|
|||
|
модальные же не обязательно создавать вручную
но вобще сейчас проверил чтобы форма себя клонировала (работает): PHP код:
|
|
#9
|
|||
|
|||
|
спс
Ща попробую |
|
#10
|
|||
|
|||
|
Расскажу всю суть
На форме родителя имеются вкладки На разных вкладках генерируется разная инфа(всякие накладные) на одной из вкладок жмем кнопку и создаем форму. на этой форме выводим данные по одному полю из запроса родителя. Дальше из модальной по кнопке и выделенному элементу возвращаемся к родителю, не уничтожаясь, и в родителе просматриваем другую вкладку с другими данными(данные из модалки забираем). И необходимо возвр к модальной со старыми данными. поэтому free ну никак не катит. ![]() |
|
#11
|
|||
|
|||
|
Цитата:
|
|
#12
|
|||
|
|||
|
под созданием вручную ты же понимаешь
procedure TForm1.Button1Click(Sender: TObject); begin with Tform1.create(Self) do try showmodal; finally free; end; end; да? Вообще в модалках можно сделать то что я хочу? а именно сохр данные в ней и просмотреть её снова. |
|
#13
|
|||
|
|||
|
Чёт я туплю модальная форма - это копия той, что основная?
|
|
#14
|
|||
|
|||
|
нет
это та которая отобразиться от родителя, но она совершенно другая. родитель - та формы из которой создается модальная. Родитель не может изменяться пока модальная не закр |
|
#15
|
|||
|
|||
|
если та которая совершенно другая - Form2
то в чём проблема просто сделать Form2.shownoda? (без Create, Free итп) |