Форум: "Начинающим";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
ВнизУничтожение формы при ее закрытии. Найти похожие ветки
← →
И. Павел © (2010-09-30 09:42) [0]Здравствуйте.
procedure TShowEvForm.BitBtn1Click(Sender: TObject);
begin
Close;
Free;
end;
Подскажите, пожалуйста, такой код допустим, или все же лучше посылать сообщение, прехватывать его в главной форме и уничтожать форму ShowEvForm?
Заранее спасибо.
← →
И. Павел © (2010-09-30 09:53) [1]Все, access violation поскочили - значит так нельзя :)
← →
Игорь Шевченко © (2010-09-30 10:23) [2]RTFM: TCustomForm.Release
← →
И. Павел © (2010-09-30 10:36) [3]> Игорь Шевченко ©
Большое спасибо!
← →
TApplication (2010-09-30 12:59) [4]А если пользователь закроет форму крестиком в заголовке или Alt-F4?
procedure TShowEvForm.BitBtn1Click();
begin
Close;
end;
procedure TShowEvForm.OnCloseQuery();
begin
Action := caFree;
end;
← →
И. Павел © (2010-09-30 13:03) [5]> А если пользователь закроет форму крестиком в заголовке или Alt-F4?
Я уже прописал в OnClose вызов Release.
Но способ интересный, спасибо.
← →
TApplication (2010-09-30 13:08) [6]Но способ интересный
Способ не интересный, а стандартный, для указания, что делать форме при попытке ее закрыть. Там не только caFree, там и другие действия присутствуют.
← →
Anatoly Podgoretsky © (2010-09-30 15:31) [7]И. Павел © (30.09.10 09:42)
Плюнь на все советы, кроме случая когда форма не модальная, а попробуй сменить дизайн, OnCloseQuery в первую очередь для не модальных форм.
← →
И. Павел © (2010-09-30 15:33) [8]> Плюнь на все советы, кроме случая когда форма не модальная,
> а попробуй сменить дизайн, OnCloseQuery в первую очередь
> для не модальных форм.
У меня как раз форма не модальная. Эта форма может появляться в большом числе экземпляров во время работы программы (это окошки с напоминаниями пользователю). Была бы модальная форма, я бы удалял ее после ShowModal.
← →
Anatoly Podgoretsky © (2010-09-30 16:06) [9]> И. Павел (30.09.2010 15:33:08) [8]
А что же ты молчал, когда задавал вопрос?
Ну тогда событие для тебя.
← →
Юрий Зотов © (2010-09-30 17:16) [10]
> И. Павел © (30.09.10 13:03) [5]
> Но способ интересный, спасибо.
Это ПРАВИЛЬНЫЙ способ. Его и используйте.
← →
Leonid Troyanovsky © (2010-10-01 08:00) [11]
> И. Павел © (30.09.10 15:33) [8]
> в большом числе экземпляров во время работы программы
type
TFormX = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure DoClose(var Action: TCloseAction); override;
end;
implementation
{$R *.dfm}
procedure TFormX.DoClose;
begin
inherited;
Action := caFree;
end;
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c