Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Top100   (2004-04-20 11:54) [0]

Хелп ПЛЗ с освобождением памяти под ранее созданную форму.При использовании Free вываливается ошибка Access violation


 
Top100   (2004-04-20 11:54) [0]

Хелп ПЛЗ с освобождением памяти под ранее созданную форму.При использовании Free вываливается ошибка Access violation


 
Reindeer Moss Eater ©   (2004-04-20 11:55) [1]

При использовании Free у кого/чего?


 
Reindeer Moss Eater ©   (2004-04-20 11:55) [1]

При использовании Free у кого/чего?


 
Top100   (2004-04-20 11:59) [2]

Точнее "..название формы.Free" использую при обработке onClose самой формы.


 
Top100   (2004-04-20 11:59) [2]

Точнее "..название формы.Free" использую при обработке onClose самой формы.


 
Тимохов ©   (2004-04-20 12:01) [3]

код давай


 
Тимохов ©   (2004-04-20 12:01) [3]

код давай


 
Reindeer Moss Eater ©   (2004-04-20 12:03) [4]

использую при обработке onClose самой формы.

Не надо делать этого. Никогда.


 
Reindeer Moss Eater ©   (2004-04-20 12:03) [4]

использую при обработке onClose самой формы.

Не надо делать этого. Никогда.


 
Top100   (2004-04-20 12:04) [5]


> Тимохов ©   (20.04.04 12:01) [3]
> код давай


Даю:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Form2.Free;
end;


 
Top100   (2004-04-20 12:04) [5]


> Тимохов ©   (20.04.04 12:01) [3]
> код давай


Даю:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Form2.Free;
end;


 
Григорьев Антон   (2004-04-20 12:04) [6]

В OnClose явный вызов Free?!!! Нельзя так - после обработки OnClose продолжают выполняться функции формы, а вы её уже уничтожили. Просто поменяйте значение параметра Action на caFree, и форма автоматически освободится, как только это будет возможно. И читайте справку - тогда не придётся писать в форум из-за такой ерунды.


 
Григорьев Антон   (2004-04-20 12:04) [6]

В OnClose явный вызов Free?!!! Нельзя так - после обработки OnClose продолжают выполняться функции формы, а вы её уже уничтожили. Просто поменяйте значение параметра Action на caFree, и форма автоматически освободится, как только это будет возможно. И читайте справку - тогда не придётся писать в форум из-за такой ерунды.


 
Silver Alex ©   (2004-04-20 12:04) [7]

Free в OnClose это ты зря, в OnClose надо ставить Action:=caFree;


 
Silver Alex ©   (2004-04-20 12:04) [7]

Free в OnClose это ты зря, в OnClose надо ставить Action:=caFree;


 
Top100   (2004-04-20 12:05) [8]


> Reindeer Moss Eater ©   (20.04.04 12:03) [4]
> использую при обработке onClose самой формы.
>
> Не надо делать этого. Никогда.


Так я и спрашиваю как надо то? :)


 
Top100   (2004-04-20 12:05) [8]


> Reindeer Moss Eater ©   (20.04.04 12:03) [4]
> использую при обработке onClose самой формы.
>
> Не надо делать этого. Никогда.


Так я и спрашиваю как надо то? :)


 
Reindeer Moss Eater ©   (2004-04-20 12:06) [9]

Вторая грубая ошибка - это использование имени левой переменной внутри метода класса для вызова другого метода этого же класса.

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Free;
end;


 
Reindeer Moss Eater ©   (2004-04-20 12:06) [9]

Вторая грубая ошибка - это использование имени левой переменной внутри метода класса для вызова другого метода этого же класса.

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Free;
end;


 
Тимохов ©   (2004-04-20 12:07) [10]

Скажем так: не всегда (но больше чем в половине случаев) уничтожать объект из его же метода нельзя - это приводит к av как в данном случае. В любом случае делать так нельзя (даже если все работает). В остальном полностью согласен с предыдущими ораторами.


 
Тимохов ©   (2004-04-20 12:07) [10]

Скажем так: не всегда (но больше чем в половине случаев) уничтожать объект из его же метода нельзя - это приводит к av как в данном случае. В любом случае делать так нельзя (даже если все работает). В остальном полностью согласен с предыдущими ораторами.


 
Reindeer Moss Eater ©   (2004-04-20 12:08) [11]

Так я и спрашиваю как надо то? :)

Зависит от того, модальная у тебя форма или нет. О чем никто еще кроме тебя не знает.


 
Reindeer Moss Eater ©   (2004-04-20 12:08) [11]

Так я и спрашиваю как надо то? :)

Зависит от того, модальная у тебя форма или нет. О чем никто еще кроме тебя не знает.


 
Silver Alex ©   (2004-04-20 12:09) [12]


> Так я и спрашиваю как надо то? :)

а как вызываешь? Если модально тогда
with TForm2.Create(nil)  do
try
 ShowModal;
finally
 Free;
end;

а если просто методом Show, тогда в OnClose Action:=caFree;


 
Silver Alex ©   (2004-04-20 12:09) [12]


> Так я и спрашиваю как надо то? :)

а как вызываешь? Если модально тогда
with TForm2.Create(nil)  do
try
 ShowModal;
finally
 Free;
end;

а если просто методом Show, тогда в OnClose Action:=caFree;


 
Top100   (2004-04-20 12:10) [13]


> Reindeer Moss Eater ©   (20.04.04 12:08) [11]
> Так я и спрашиваю как надо то? :)
>
> Зависит от того, модальная у тебя форма или нет. О чем никто
> еще кроме тебя не знает.


да модальная


 
Top100   (2004-04-20 12:10) [13]


> Reindeer Moss Eater ©   (20.04.04 12:08) [11]
> Так я и спрашиваю как надо то? :)
>
> Зависит от того, модальная у тебя форма или нет. О чем никто
> еще кроме тебя не знает.


да модальная


 
Reindeer Moss Eater ©   (2004-04-20 12:12) [14]

with TMyModalForm.Create(Application) do
try
ShowModal;
finally
Free;
end;


 
Reindeer Moss Eater ©   (2004-04-20 12:12) [14]

with TMyModalForm.Create(Application) do
try
ShowModal;
finally
Free;
end;


 
Top100   (2004-04-20 12:16) [15]

Спасибо большое всем за ответы. Я понял свои грубые ошибки. Извините за мою безграмотность. Учусь.


 
Top100   (2004-04-20 12:16) [15]

Спасибо большое всем за ответы. Я понял свои грубые ошибки. Извините за мою безграмотность. Учусь.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.051 c
1-1082654790
DillerXX
2004-04-22 21:26
2004.05.09
Ctrl + V


3-1081877364
nika_ufc
2004-04-13 21:29
2004.05.09
проблема с АДО и TFileStream


1-1082210370
Kiloper
2004-04-17 17:59
2004.05.09
Как програмно собрать несколько файлов в один файл,


11-1067946243
Nert
2003-11-04 14:44
2004.05.09
Как сделать прозрачность формы как в VCL


1-1082870985
Артем К.
2004-04-25 09:29
2004.05.09
Проблема с предварительным просмотром в QuickReport





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский