Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

caFree


Страницы:   1 2

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 т.е.

Проверяешь не её, а одну из ссылок не нее.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо