Форум: "Основная";
Текущий архив: 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.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c