Форум: "Основная";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
ВнизsMDIForm и sMDIChild Найти похожие ветки
← →
Apachi (2005-07-07 17:51) [0]Народ что я делаю не так?
Если я грубо повел себя где то не так сильно не судите...
На sMDIForm обявляем переменную
child_form: TChildForm;
На пункт меню на главной форме вешаем процедурку стаким содержанием
if not Assigned(child_form)then begin
child_form := TChildForm.Create(self);
child_form.Show;
end else
begin
child_form.SetFocus;
child_form.Show;
end;
Теперь что касается самого sMDIChild окна
на закрытие вешаем
MainForm.child_form:=nil;
self.free
Что то я ведь сделал не так! потомучто немного пооткрываешь закрываешь эти чилд окна и выскакивают ошибки работы с памятью, подскажите где почитать как их грамотно создавать и удалять, плиз
← →
Игорь Шевченко © (2005-07-07 17:52) [1]
> self.free
Заменить на Action := caFree
← →
Apachi (2005-07-07 17:58) [2]Игорь Шевченко © Работает!!!
И в чем разница????
Спасибо!
← →
Игорь Шевченко © (2005-07-07 18:15) [3]
> И в чем разница????
В том, что нельзя уничтожать объект внутри его же метода.
← →
begin...end © (2005-07-07 18:21) [4]> Игорь Шевченко © (07.07.05 18:15) [3]
Точнее, внутри обработчика события нельзя. В обычных методах -- зачастую можно.
← →
Игорь Шевченко © (2005-07-07 18:22) [5]begin...end © (07.07.05 18:21) [4]
Безусловно.
← →
Юрий Зотов © (2005-07-07 18:36) [6]> Apachi (07.07.05 17:51)
Action := caFree - это Вам правильно подсказали. Но одного этого мало, ошибка останется. Потому что при уничтожении объекта ссылки на него не обнуляются, переменная child_form не изменится, Assigned даст True и сработает child_form.SetFocus. А переменная child_form указывает на уже несуществующий объект - и получим Access Violation.
Вывод - при уничтожении дочерней формы надо присваивать nil переменной child_form.
← →
Игорь Шевченко © (2005-07-07 18:38) [7]
> Вывод - при уничтожении дочерней формы надо присваивать
> nil переменной child_form
Собстна, в нулевом посте это и написано.
← →
Юрий Зотов © (2005-07-07 19:01) [8]Гм... и правда... проглядел.
:о)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c