Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.08.2015, 14:47
Аватар для ABTOBbIKND
ABTOBbIKND ABTOBbIKND вне форума
Прохожий
 
Регистрация: 17.08.2015
Сообщения: 3
Версия Delphi: Delphi 2007
Репутация: 10
Вопрос Проблема с закрытием формы (DelphiX)

Всем здрасьте.
Возникла проблема при разработке игры на 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;
Я так понял, что не до конца ликвидировал эти спрайты, раз из-за них выскакивет ошибка.
Уже много чего перепробовал, перерыл кучу сайтов, но решения проблемы так и не нашел. Помогите нубасу
Ответить с цитированием
  #2  
Старый 17.08.2015, 17:49
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Может вместо Close поробовать Visible:= false?
Ответить с цитированием
  #3  
Старый 17.08.2015, 18:09
Аватар для ABTOBbIKND
ABTOBbIKND ABTOBbIKND вне форума
Прохожий
 
Регистрация: 17.08.2015
Сообщения: 3
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Может вместо Close поробовать Visible:= false?
Не получится, наверное...
Во-первых, музыка в игре (DXMusic) продолжает играть, во-вторых, мне эту форму все равно потом заново запускать надо будет. Схема такая:
Конец уровня, форма 7 закрывается, открывается форма 9 (меню) --> Выполняются некоторые действия (в. т. ч. смена уровня) --> форма 9 закрывается (или скрывается), форма 7 загружается заново (и там уже другой уровень).
Как это реализовать? В том-то и дело, что придется форму 7 как-то закрывать, а не скрывать.
Ответить с цитированием
  #4  
Старый 17.08.2015, 18:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Тогда может вы зря самостоятельно компоненты грохаете перед закрытием формы, ведь не просто так выход из диапазона возникает?
Ответить с цитированием
  #5  
Старый 17.08.2015, 18:22
Аватар для ABTOBbIKND
ABTOBbIKND ABTOBbIKND вне форума
Прохожий
 
Регистрация: 17.08.2015
Сообщения: 3
Версия Delphi: Delphi 2007
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Тогда может вы зря самостоятельно компоненты грохаете перед закрытием формы, ведь не просто так выход из диапазона возникает?
Пытался не грохать, ничего не поменялось. Та же самая ошибка.
Ответить с цитированием
  #6  
Старый 17.08.2015, 18:32
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Выходит нужно смотреть всё, что создаётся для уровня, а когда он пройден этот список уничтожать перед закрытием, наверное так
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter