Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > проблема с MDI


Автор: MaxxSoftware 9.8.2005, 09:26
Есть проект с кучай форм... показываю форму MDi ную, потом, например по нажатию кнопки пытаюсь закрыть (лобо Close либо FreeAndNil) но выдается сообдение обращения к ячейке памяти памяти... в чом дело???

Автор: Pakshin A. S. 9.8.2005, 09:42
Вместо Close попробуй MDIForm1.Visible:=false;... Если подойдет, то так вполне можно делать... smile

Автор: MaxxSoftware 9.8.2005, 09:49
ну форма создаеца диномично, и после закрытия должна уничтожаца дабы создастся в следующий раз...
да и визибле для MDI Child никак не катит - ошибка буит. кенот хайд МДАЙ Чилд форм =)

Автор: Pakshin A. S. 9.8.2005, 09:58
Цитата(MaxxSoftware @ 9.8.2005, 10:49)
должна уничтожаца

А обычный Free?

Автор: MaxxSoftware 9.8.2005, 10:50
Ошибка при обращении к ячейки памяти smile

Автор: MaxxSoftware 9.8.2005, 11:05
Самое интерестное что некоторые формы работают нармально, а некаторые вот так реагируют(2 если точно), все формы кроме главной убраный из автокрейта(тоесть сразу создается только одна форма, главный MDI =)) в нем примерно так создаются остальные
Код

if not IsMDIChildOpen(frmMain,'frmAddPay') then (*проверяю открыта ли форма frmMain - главная форма, frmAddPay - MDI Child*)
  begin
   frmAddPay := TfrmAddPay.Create(Application);
   frmAddPay.Show;
  end
  else
    frmAddPay.Show;


далее в он клоус формы frmAddPay пишу
Код
FreeAndNil(frmAddPay);


Оно работает, но если я пытаюсь предположим по нажатию на кнопку завалить ето окно, тоесть пишу так же FRee.. или Close... то блин ашипка!

Автор: Song 9.8.2005, 11:17
Код

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action:=caFree;
 Self:=nil;
end;

Автор: Pakshin A. S. 9.8.2005, 11:20
Цитата(Song @ 9.8.2005, 12:17)
Self:=nil;

А вроде и без него сработает...

Автор: Song 9.8.2005, 11:22
Pakshin A. S.
да трудно понять что у него получается. Походу у него новая создаётся до разрушения старой.

Автор: MaxxSoftware 9.8.2005, 12:51
Респект, все работает, спасибки!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)