Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.004 c
15-1284462862
{RASkov}
2010-09-14 15:14
2010.12.26
USB Flash не устанавливаются ОСью как положено


2-1285944015
Первокурсница
2010-10-01 18:40
2010.12.26
Экспортировать отчёт из Delphi в MsWord,дублировать запрос в Lbl


2-1285865707
Rembo2010
2010-09-30 20:55
2010.12.26
Как прочитать значение из файла???


2-1285698321
Levan
2010-09-28 22:25
2010.12.26
Findfirst() в Делфи10


15-1284536871
И. Павел
2010-09-15 11:47
2010.12.26
Как сделать один SQLзапрос, но чтобы вложения считались единожды?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский