Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.26;
Скачать: CL | DM;

Вниз

Уничтожение формы при ее закрытии.   Найти похожие ветки 

 
И. Павел ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
2-1286133494
Sperry
2010-10-03 23:18
2010.12.26
"обратный цыкл"


2-1285805956
HF-Trade
2010-09-30 04:19
2010.12.26
Назначить диапазону массива значения


15-1284728859
12
2010-09-17 17:07
2010.12.26
Шахматы. А как бы Вы сыграли?


15-1284409769
Юрий
2010-09-14 00:29
2010.12.26
С днем рождения ! 14 сентября 2010 вторник


2-1285773040
asd
2010-09-29 19:10
2010.12.26
запуск exe