Вниз
Скачать: CL | DM;

Ошибка при закрытии   Найти похожие ветки 

 
SergProger ©   (2005-11-02 16:02) [0]

Привет всем! У меня возникла проблема. Вот код:

var
 Form1: TForm1;
 Image: array of TImage;

implementation

{$R *.dfm}

procedure TForm1.FormDestroy(Sender: TObject);
begin
 Image[1].Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 SetLength(Image,1);
 Image[1]:=TImage.Create(Self);
 Image[1].Parent:=Self;
 Image[1].Left:=8;
 Image[1].Top:=8;
end;

Работает хорошо, но при закрытии окна возникает ошибка "Invalid pointer operation". Помогите пожалуйста разобраться.


 
TUser ©   (2005-11-02 16:15) [1]

Ты указал Owner = Self, после при закрытии формы она пытается вызвать метод Free у картинки, а он уже вызвал, т.е. Image1 = nil. Вывод - убери метод Free из Ondestroy


 
Digitman ©   (2005-11-02 16:15) [2]

выкинь из тела обработчика события TForm1.OnDestroy тот самый

Image[1].Free

почему ?

это отдельный вопрос ....


 
MBo ©   (2005-11-02 16:23) [3]

динамические массивы нумеруются с нуля...


 
Leonid Troyanovsky ©   (2005-11-02 16:48) [4]


> SergProger ©   (02.11.05 16:02)  

> var
>  Form1: TForm1;
>  Image: array of TImage;


The global variables - MD.

--
Regards, LVT.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
2-1131314313
Michael5
2005-11-07 00:58
2005.11.27
Заклинило на примитивной вещи - не могу отредактировать запись!


11-1112126974
GMax
2005-03-30 00:09
2005.11.27
Юникод в буфере/контролах?


1-1131005206
Владислав
2005-11-03 11:06
2005.11.27
Автоматический вызов деструкторов при выходе из процедуры.


14-1130878249
Verg
2005-11-01 23:50
2005.11.27
Крит. секции и взаимная блокировка (dead lock)


2-1131628633
Piero
2005-11-10 16:17
2005.11.27
Получить Handle запускаемого процесса




   Наверх