Problem z dynamicznym menuItem

0

Cześć...
Tworzę sobie dynamicznie obiekt menu:

var
nowy: array of TMenuItem;

begin
setLength(nowy, x+1); //x jest zmienną integer
nowy[x+1]:=TMenuItem.create(self);
nowy[x+1].caption:='NOWY';
//a teraz wkładam go do istniejącego menu

menu.insert(menu.count, nowy[x+1]);

end;

I niby wszystko jest w porządku... Dopóki nie zamykam programu.
Wtedy pojawiają się błędy:
EInvalidPoiter i Run time error 216

Próbowałem też w tej procedurze:
nowy[x+1].free, ale to chyba kompletna głupota ;)

Więc zrobiłem to w onClose formy i też były błędy...
Próbowałem też(w onClose formy)

nowy[x+1].freeOnRelease, nowy[x+1].destroy

Próbowałem też nowy:=nil;

ale zawsze były błędy... Ktoś wie, jak mi pomóc?

0

Lepiej tak

Var Nowy:Array of TMenuItem;

Begin
SetLength(Nowy,Length(Nowy)+1);
Nowy[Length(Nowy)-1]:=TMenuItem.Create(Self);
Nowy[Length(Nowy)-1].Caption:='NOWY';
Menu.insert(menu.count, Nowy[Length(Nowy)-1]);
end;

Rob potem tak:

Var I:Byte;
Begin
For I:=0 To Length(Nowy)-1 Do Nowy[I].Free;
SetLength(Nowy,0);
End;

1 użytkowników online, w tym zalogowanych: 0, gości: 1