Всем здрасьте.
Возникла проблема при разработке игры на DelphiX:
Нужно по определенном условию закрыть форму типа TDXForm, где происходит игра, и открыть другую форму (меню).
Пытался делать так:
Код:
procedure tform7.nepotrebstvo;
begin
dxdraw1.Finalize; //Выпиливает таймер
dxdraw1.Free;
dxspriteengine1.Dead;
dximagelist1.Free;
close; //7-я форма должна закрыться
form9.Showmodal; //9-я форма должна быть показана
end;
Однако, при закрытии формы возникает ошибка "index of the list exceeds the range. (41)"
Компилятор указывает на эту функцию в юните DXSprite:
Код:
function TSprite.GetItem(Index: Integer): TSprite;
begin
if FList <> nil then
Result := FList[Index]
else
raise ESpriteError.CreateFmt(SListIndexError, [Index]);//Вот эту строку компилятор выделяет
end;
Я так понял, что не до конца ликвидировал эти спрайты, раз из-за них выскакивет ошибка.
Уже много чего перепробовал, перерыл кучу сайтов, но решения проблемы так и не нашел. Помогите нубасу
