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

Вниз

Немодальные формы, caFree и if Assign(MyForm) ...????   Найти похожие ветки 

 
simeon   (2003-07-03 19:26) [0]

Проблема:
Есть *немодальные* формы кот-е создаются при необходимости. Убиваются на OnClose через Action := caFree;
Если потом (после убийства) запросить
if Assign(MyForm) then
MyForm.Caption := "bla-bla-bla" ...
то переодичски можно получить AV.
Как справится с ситуацией, FreeAndNil(MyForm) не вызвать, ибо неизвестен момент убийства?


 
Serginio   (2003-07-03 19:30) [1]

Либо записывать Self при создании например в TList и удалять из него при уничтожении. Либо напрямую в Destroy MyForm:=nil;


 
Serginio   (2003-07-03 19:45) [2]

Вернее создать наследника от TForm содержащее поле в котором содержится ссылка на Объект .
pMyForm=^TForm;
TMyForm= Class(TForm);
private
fPOwnerForm:pMyForm
public
Coctructor.Create(AOwner: TComponent; var OwnerForm:TMyForm); override;
Destructor destroy; Override;
//--------------------
//--------------------------------
constructor TMyForm.Create(AOwner: TComponent; var OwnerForm:TMyForm);
begin
inherited Create(AOwner);
fPOwnerForm:=@OwnerForm;
end;

destructor TMyForm.Destroy;
begin
fPOwnerForm^:=Nil;
inherited Destroy;
end;


 
Serginio   (2003-07-03 19:52) [3]

Вернее
constructor TMyForm.Create(AOwner: TComponent; var OwnerForm:TMyForm);
begin
OwnerForm:=inherited Create(AOwner);
fPOwnerForm:=@OwnerForm;
end;
Что бы затем просто вызвать.
TMyForm.Create(Application, MyForm);



 
Anatoly Podgoretsky ©   (2003-07-03 20:06) [4]

Зачем вообще нужна глобальная переменная, форма доступна через объект Screen.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-55803
cyborg
2003-07-01 00:46
2003.07.17
Осторожно, идиотские инструкции!


7-55860
DVM
2003-04-23 22:34
2003.07.17
Ошибка в Windows Common Controls 6.0 или руки?


14-55712
Кулюкин Олег
2003-07-02 09:07
2003.07.17
Как вам грид из EhLib?


14-55828
Delphi 5.01
2003-06-28 09:14
2003.07.17
Word Document


1-55596
Zigs
2003-07-03 13:12
2003.07.17
Можно ли в QReport сделать шрифт меньше чем 8?