![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание и удаление компонентов в run-time [D5, Win95/98]
Lamerr_ © (2002-11-08 13:40:00)Доброе время суток.
Код:
for i:=0 to 10 do
begin
rgAxis[i]:=TRadioGroup.Create(nil);
with rgAxis[i] do
begin
Parent:=sbAxis;{ScrollBox}
Visible:=True;
Tag:=i;
OnClick := GBClick;
end;
end;
создает массивчик RadioGroup, который потом нужно уничтожить:
for i:=0 to 10 do rgAxis[i].Free;
При попытке уничтожить получаю сообщение Access violation...
Что сделал не правлильно?
Помогите, пожалуйста.
Александр Спелицин (2002-11-08 17:24:00) [1]http://www.delphikingdom.com/helloworld/runtime_comp.htm
Игорь Шевченко (2002-11-08 14:18:00) [2]
> SetLength(rgAxis,10){то, что касается инициализации}
SetLength(rgAxis,11)
Lamerr_ (2002-11-08 14:15:00) [3]2 Ihor Osov"yak © (08.11.02 14:06)
SetLength(rgAxis,10){то, что касается инициализации}
А обработчик срабатывает тольк раз. Проверял точками останова.
Ihor Osov'yak (2002-11-08 14:06:00) [4]2 Lamerr_ © (08.11.02 13:59)
Интересно было бы взглянуть на код инициализации глобального дин массива.
Во вторых, Вы уверенны, что обработчик в силу каких-то непонятных причин не срабатывает два раза?
На тот случай, а лучше всегда, делать примерно так:
for i:=0 to 10 do begin
if assigned(rgAxis[i]) then begin
rgAxis[i].Free;
rgAxis[i]:=nil;
end;
end;
естественно, в коде инициализации масива загнать в него nil.
Lamerr_ (2002-11-08 13:59:00) [5]rgAxis[i] - динамический массив, места там есть.
Уничтожение делаю в обработчике события кнопки.
Ihor Osov'yak (2002-11-08 13:52:00) [6]непонятно, что за зверь rgAxis; как создан, отведены ли там места этих одинадцать экземпляров. Непонятно, также где Вы делаете уничтожение.
Также, почему бы не делать rgAxis[i]:=TRadioGroup.Create(self);
и не заботится об уничтожении (я исхожу из того, что код этод -
метод формы или фрейма).
Lamerr_ (2002-11-08 13:52:00) [7]rgAxis - глобальная переменная
TTCustomDelphiMaster (2002-11-08 13:49:00) [8]rgAxis - глобальная переменная?