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

Вниз

caFree   Найти похожие ветки 

 
Rooot   (2007-04-03 11:13) [0]

При создании формы сначала проверяю ее на nil т.е.

if frmMain = nil then
 frmMain := TfrmMain.Create(Application);

Далее в событие Close этой же формы делаю

Action := caFree;

Закрываю форму..
Пытаюсь сново создать форму, увы форма не создается, я как полял мешает проверка условия....
Как Выгрузить форму так, чтобы переменая frmMain типа TfrmMain, сново содержала nil???


 
Плохиш ©   (2007-04-03 11:16) [1]


> чтобы переменая frmMain типа TfrmMain, сново содержала nil?

Твоя переменная - ты и устанавливай ей значение.

PS. Эта тема скоро опередит "как запуздырить туда где часики".


 
Думкин ©   (2007-04-03 11:16) [2]

Тебе синглтон нужен?


 
Knight ©   (2007-04-03 11:17) [3]

А что мешает присвоить ей значение nil?


 
Reindeer Moss Eater ©   (2007-04-03 11:17) [4]

При создании формы сначала проверяю ее на nil т.е.

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


 
Юрий Зотов ©   (2007-04-03 11:18) [5]

> Rooot   (03.04.07 11:13)  

В событии OnDestroy напишите
frmMain := nil;
и наступит счастье.


 
Reindeer Moss Eater ©   (2007-04-03 11:21) [6]

А вообще борланда пора засудить за автоматом генерируемые декларации переменных в модуле форм. За вредительство.
Сколько в мире молодых и неокрепших душ поимело искаженное представление о тождественности экземпляра формы и этих переменных.


 
Rooot   (2007-04-03 11:22) [7]


> Юрий Зотов ©   (03.04.07 11:18) [5]

Нету счастья...
Уже только как не пробовал...
frmMain.Free;
frmMain := nil;

Action := caFraa;

FreeAndNil(frmMain);

... Ни че не помогает... :o(


 
novill ©   (2007-04-03 11:22) [8]

> [0] Rooot   (03.04.07 11:13)
>Как Выгрузить форму так, чтобы переменая frmMain типа TfrmMain, сново содержала nil???


так и написать  frmMain:=nil; )))

тока учти, если у тебя будет еще одна переменная типа TfrmMain, то по ее закрытию обнуляться все равно будет frmMain )))


 
novill ©   (2007-04-03 11:25) [9]

> [7] Rooot   (03.04.07 11:22)
> Нету счастья...
> Уже только как не пробовал...
> frmMain.Free;
> frmMain := nil;

не может такого быть

> [6] Reindeer Moss Eater ©   (03.04.07 11:21)

+1
Вообще, к борланду много идеологических претензий (


 
Rooot   (2007-04-03 11:27) [10]

Да... Еще у меня форма Modal, может быть из-за этого...???


 
Reindeer Moss Eater ©   (2007-04-03 11:31) [11]

Убивать модальную форму в обработчике OnClose с помощью caFree?
Не знать, есть ли в настоящее время экземпляр модальной формы и проверять ссылку на нее на нил?

Чудно однако!


 
ЮЮ ©   (2007-04-03 11:32) [12]

> Да... Еще у меня форма Modal, может быть из-за этого...?
> ??


Тут ещё проще, безо всяких caFree и проверок на nil. Создали/закрыли/обработали/уничтожилт
frmMain - вообще логальная в этом методе. В модуле формы - убить в назидание Борланду.


frmMain := TfrmMain.Create(Application);
try
  frmMain.ShowModal;
  if frmMain.ModalResul = ... then begin

  end;
  ...    
finally
  frmMain.Free;  
end;


 
Knight ©   (2007-04-03 11:33) [13]


procedure frmMainShow;
bwgin
 with TfrmMain.Create(Application) do try
   ShowModal;
 finally
   Free;
 end;
end;


 
Юрий Зотов ©   (2007-04-03 12:59) [14]

> Reindeer Moss Eater ©   (03.04.07 11:21) [6]

Если кто-то не умеет програмировать - при чем тут Borland?


 
Думкин ©   (2007-04-03 13:01) [15]


> Reindeer Moss Eater ©   (03.04.07 11:21) [6]

Ну да и науку в топку ибо некто не читал про полинезийцев, а выводов настроил...... :(


 
Reindeer Moss Eater ©   (2007-04-03 13:10) [16]

Если кто-то  ... - при чем тут Borland?
Он в некоторой степени способствовал этому тем, что вставляет эти декларации в код проекта.


 
_Аноним   (2007-04-03 13:20) [17]


> Думкин ©


> Ну да и науку в топку

и не-науку тоже


 
Юрий Зотов ©   (2007-04-03 14:17) [18]

> Reindeer Moss Eater ©   (03.04.07 13:10) [16]

Тогда введший в любой язык понятие "указатель" тоже косвенно виноват в косяках, которые появляютя в программах, авторы которых не понимают, что такое "динамическая память"?

А переменная эта введена Борландом потому, что она нужна в автоматически генерируемом коде DPR.


 
Плохиш ©   (2007-04-03 15:25) [19]

Хм, я так понимаю, что Билл Гейтс здесь не виноват? :-(


 
Reindeer Moss Eater ©   (2007-04-03 15:37) [20]

А переменная эта введена Борландом потому, что она нужна в автоматически генерируемом коде DPR.

Я бы согласился с этим, если бы автоматическая декларация переменных убиралась бы при снятой опции "автосоздание форм". Да и то с натягом.


 
{RASkov}   (2007-04-03 15:40) [21]

> [19] Плохиш ©   (03.04.07 15:25)

К сожалению :(
:)


 
{RASkov}   (2007-04-03 15:43) [22]

А вообще Делфи не для того, чтобы на ней учились писать проги и не в коем разе не надо подстраиваться под лохов.
Ничего личного. Просто имхо.


 
Юрий Зотов ©   (2007-04-09 18:13) [23]

> {RASkov}   (03.04.07 15:43) [22]

О! Поддерживаю двумя руками!



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

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

Наверх




Память: 0.52 MB
Время: 0.057 c
15-1175328227
VirEx
2007-03-31 12:03
2007.04.29
сжатие траффика, как настроить MirandaIM (ICQ,IRC,MRA) для CProxy


3-1169549550
iviom
2007-01-23 13:52
2007.04.29
Как поставить NULL в поле datetime через ADODateSet


6-1162540138
sfn
2006-11-03 10:48
2007.04.29
ICS — TWSocket


2-1176209574
Mishenka
2007-04-10 16:52
2007.04.29
Имя компонента


9-1148936287
TButton
2006-05-30 00:58
2007.04.29
OGL