Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 22:14   #1
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
Сообщение GLScene, разбитие на модули

Здравствуйте. Я начал изучение GLScene и столкнулся с проблемой. Дело в том, что я хочу сразу разбивать код своего проекта на модули, в одном модуле создаётся и обрабатывается камера, в другом идёт загрузка карты и так далее. Но я не могу этого сделать, так как, для создания объекта надо указывать другой объект, который будет являться его "владельцем" (если можно так выразиться):
Код:
Cam:=TGLCamera.CreateAsChild(Form1.GLScene1.Objects);
Высший объект, которому принадлежат все остальные - это GLScene1.Objects, который расположен на форме. Там же расположен таймер (GLCadencer1, тоже "AsChild(Form1.GLScene1.Objects )").
А мне надо, чтобы таймер был в одном модуле (самом главном, так сказать), а GLScene1 в другом, который можно указывать в разделе uses других модулей, чтобы создавать объекты, как потомки GLScene1. Так вот, как разделить? Меня не устраивает вариант писать всю игру в 1 модуле...
Надеюсь, что выразился понятно
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 27.09.2011, 07:29   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

А строка uses модули; (хотя бы модуль той же формы), объявляемый после Implementation не помогает (это стандартный способ избавления от циклических ссылок модулей)?

я один раз использовал такой трюк:
проблема : один класс использует другой класс в качестве поля, но и второй тоже должен уметь обращаться к первому, в нем ссылка на него, а естественно они в разных модулях, и объявлять их надо перед описание каждого класса, а классы объявляются только в interface секции , а значит и в uses надо объявлять их циклически, вот.
решение: объявил в интерфейсной части второго класса первый класс как Tobject, после чего в uses после Implementation вписал uses модуль_с_первым_классом, а в реализациях везде написал экз_1класса as Tпервый_класс, то есть делаю приведение типа уже в реализации, где как раз возможна циклическая ссылка модулей
phomm вне форума Ответить с цитированием
Старый 27.09.2011, 13:22   #3
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Спасибо, помогло. Раньше я не знал про такой способ.
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GLscene bulldog5293 Компоненты Delphi 1 14.01.2011 02:02
Delphi7. Разбитие строки на подстроки Pecho Помощь студентам 3 12.12.2010 21:19
Количество слов в рядке. Разбитие по по пять символов. Fatummors Общие вопросы C/C++ 8 07.03.2010 16:39
Strings.DelimitedText разбитие edik Общие вопросы Delphi 7 28.12.2009 13:39
GLScene?? Foll Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 09.12.2007 17:00