![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
caFree
Rooot © (2007-04-03 11:13:00)При создании формы сначала проверяю ее на nil т.е.
if frmMain = nil then
frmMain := TfrmMain.Create(Application);
Далее в событие Close этой же формы делаю
Action := caFree;
Закрываю форму..
Пытаюсь сново создать форму, увы форма не создается, я как полял мешает проверка условия....
Как Выгрузить форму так, чтобы переменая frmMain типа TfrmMain, сново содержала nil???
Юрий Зотов (2007-04-09 18:13:00) [1]> {RASkov} (03.04.07 15:43) [22]
О! Поддерживаю двумя руками!
{RASkov} (2007-04-03 15:43:00) [2]А вообще Делфи не для того, чтобы на ней учились писать проги и не в коем разе не надо подстраиваться под лохов.
Ничего личного. Просто имхо.
{RASkov} (2007-04-03 15:40:00) [3]> [19] Плохиш © (03.04.07 15:25)
К сожалению :(
:)
Reindeer Moss Eater (2007-04-03 15:37:00) [4]А переменная эта введена Борландом потому, что она нужна в автоматически генерируемом коде DPR.
Я бы согласился с этим, если бы автоматическая декларация переменных убиралась бы при снятой опции "автосоздание форм". Да и то с натягом.
Плохиш (2007-04-03 15:25:00) [5]Хм, я так понимаю, что Билл Гейтс здесь не виноват? :-(
Юрий Зотов (2007-04-03 14:17:00) [6]> Reindeer Moss Eater © (03.04.07 13:10) [16]
Тогда введший в любой язык понятие "указатель" тоже косвенно виноват в косяках, которые появляютя в программах, авторы которых не понимают, что такое "динамическая память"?
А переменная эта введена Борландом потому, что она нужна в автоматически генерируемом коде DPR.
_Аноним (2007-04-03 13:20:00) [7]
> Думкин ©
> Ну да и науку в топку
и не-науку тоже
Reindeer Moss Eater (2007-04-03 13:10:00) [8]Если кто-то ... - при чем тут Borland?
Он в некоторой степени способствовал этому тем, что вставляет эти декларации в код проекта.
Думкин (2007-04-03 13:01:00) [9]
> Reindeer Moss Eater © (03.04.07 11:21) [6]
Ну да и науку в топку ибо некто не читал про полинезийцев, а выводов настроил...... :(
Юрий Зотов (2007-04-03 12:59:00) [10]> Reindeer Moss Eater © (03.04.07 11:21) [6]
Если кто-то не умеет програмировать - при чем тут Borland?
Knight (2007-04-03 11:33:00) [11]
procedure frmMainShow;
bwgin
with TfrmMain.Create(Application) do try
ShowModal;
finally
Free;
end;
end;
ЮЮ (2007-04-03 11:32:00) [12]> Да... Еще у меня форма Modal, может быть из-за этого...?
> ??
Тут ещё проще, безо всяких caFree и проверок на nil. Создали/закрыли/обработали/уничтожилт
frmMain - вообще логальная в этом методе. В модуле формы - убить в назидание Борланду.
frmMain := TfrmMain.Create(Application);
try
frmMain.ShowModal;
if frmMain.ModalResul = ... then begin
end;
...
finally
frmMain.Free;
end;
Reindeer Moss Eater (2007-04-03 11:31:00) [13]Убивать модальную форму в обработчике OnClose с помощью caFree?
Не знать, есть ли в настоящее время экземпляр модальной формы и проверять ссылку на нее на нил?
Чудно однако!
Rooot (2007-04-03 11:27:00) [14]Да... Еще у меня форма Modal, может быть из-за этого...???
novill (2007-04-03 11:25:00) [15]> [7] Rooot (03.04.07 11:22)
> Нету счастья...
> Уже только как не пробовал...
> frmMain.Free;
> frmMain := nil;
не может такого быть
> [6] Reindeer Moss Eater © (03.04.07 11:21)
+1
Вообще, к борланду много идеологических претензий (
novill (2007-04-03 11:22:00) [16]> [0] Rooot (03.04.07 11:13)
>Как Выгрузить форму так, чтобы переменая frmMain типа TfrmMain, сново содержала nil???
так и написатьfrmMain:=nil;)))
тока учти, если у тебя будет еще одна переменная типа TfrmMain, то по ее закрытию обнуляться все равно будет frmMain )))
Rooot (2007-04-03 11:22:00) [17]
> Юрий Зотов © (03.04.07 11:18) [5]
Нету счастья...
Уже только как не пробовал...
frmMain.Free;
frmMain := nil;
Action := caFraa;
FreeAndNil(frmMain);
... Ни че не помогает... :o(
Reindeer Moss Eater (2007-04-03 11:21:00) [18]А вообще борланда пора засудить за автоматом генерируемые декларации переменных в модуле форм. За вредительство.
Сколько в мире молодых и неокрепших душ поимело искаженное представление о тождественности экземпляра формы и этих переменных.
Юрий Зотов (2007-04-03 11:18:00) [19]> Rooot (03.04.07 11:13)
В событии OnDestroy напишите
frmMain := nil;
и наступит счастье.
Reindeer Moss Eater (2007-04-03 11:17:00) [20]При создании формы сначала проверяю ее на nil т.е.
Проверяешь не её, а одну из ссылок не нее.