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

Вниз

как проверить что форма убита?   Найти похожие ветки 

 
Ivan_A ©   (2002-03-20 16:30) [0]

Форма - available.
if InForm = nil then ...(срабатывает)
InForm:=TInForm.Create(Self);
try
InForm.ShowModal;
finally
InForm.Free;
end;

if InForm = nil then ...(не срабатывает)


 
Fellomena   (2002-03-20 16:34) [1]

А if InForm = nil then... и не должна срабатывать, потому что в InForm всё ещё содержится указатель на форму.
Делай:
finally
InForm.Free;
InForm:= nil;
end;


 
serg ©   (2002-03-20 17:14) [2]

Проверка на наличие формы:
1. if Assigned(TheForm) and (TObject(TheForm) is TForm) then
Это существующая форма

2. for I:=0 to Screen.FormCount-1 do
if Screen.Forms[I] = TheForm then begin
Форма существует.
Break;
end


 
Вячеслав ©   (2002-03-20 18:18) [3]

2 serg
Функция Assigned как раз и проверяет на nil, а это не всегда работает.
Работает , если ее освобождать так как написала Fellomena.


 
oomneeq ©   (2002-03-20 18:46) [4]

>2. for I:=0 to Screen.FormCount-1 do
> if Screen.Forms[I] = TheForm then begin
> Форма существует.
> Break;
> end
Хороший способ, спасибо за идею.
Главное, что нечистота указателя по барабану все эти чудеса с Assigned не влияют



 
Mikhail ©   (2002-03-20 18:49) [5]

procedure FreeAndNil(var Obj);

Description

Use FreeAndNil to ensure that a variable is nil after you free the object it references. Pass any variable that represents an object as the Obj parameter.



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

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
1-174
Dok_3D
2002-03-19 07:28
2002.04.01
XML-файлы большого размера


4-347
unikum
2002-01-31 19:41
2002.04.01
Подкаталоги


3-56
Turalyon
2002-03-05 13:35
2002.04.01
Триггер в IB6


1-217
Aleksandr
2002-03-20 12:18
2002.04.01
Что в программе может жрать ресурсы?


1-172
SlavaLamer
2002-03-19 14:55
2002.04.01
Opendialog