|
#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 итп) |