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




Вниз

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


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.




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




Наверх





Память: 0.72 MB
Время: 0.015 c
7-336             Dorixe                2001-12-26 16:00  2002.04.01  
SetLocaleInfo


6-271             anmak                 2001-11-02 16:49  2002.04.01  
Socket


3-9               Андре                 2002-03-04 12:07  2002.04.01  
IBSQL


6-263             Oleg_EM               2002-01-09 09:29  2002.04.01  
AsyncPro 2.58 ApdTAPIDevice как ему сказать шоп пульсом набирал ?


6-267             Reals                 2002-01-17 15:38  2002.04.01  
В локальной сети, нужно найти только сервер(а) (его имя).