![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GLScene - копирование обьекта в процессе выполнения программы [Delphi, Windows]
Andrew R2D2 (RnD) © (2003-09-28 19:15:00)Подскажите, пожалуйста, как в runtime (!) организовать копирование объекта (или присвоение его свойств другому объекту). Мне нужно скопировать линию - создавать новый объект, прописывать заново все вершины и их свойства слишком накладно.
Строка типа Line.Assign(Form1.Lines1); вызывает ошибку и к тому же, насколько я понимаю, Assign просто передает указатель на Lines1 в Line, а не копирует свойства объекта.
Andrew R2D2 (RnD) (2003-10-02 10:38:00) [1]Объясняю ситуацию:
В сцене присутствует линия Lines1(в данном случае созданная динамически - вершины прописываются во время выполнения програмы, цвет и прочие параметры линии тоже описываются динамически).
Необходимо создать копию этой линии, расположенную на экране например на 100 пикселей ниже чем оригинал.
Мой вариант с динамическим созданием Lines2, операцией присвоения Lines2:=Lines1 и последующим изменением координат Lines2 приводит к изменению положения оригинала (т.е. получается теперь просто есть две ссылки - Lines1 и Lines2 - на один и тот же объект).
"создаем нужный спрайт с нужными параметрами.
а потом изменяем значения на далее необходимые.
все динамически." - можно пример ?
Карлсон (2003-09-28 22:59:00) [2]хорошо, есть положим эта самая линия начальная.
у нее есть координаты и всякое такое.
нужно создать копию линии в данных же координатах или в начальных?
ведь при создании новой линии вы только назначаете начальные значения, а потом уже их изменяете.
что мешает динамически загрузить параметры, а потом их же динамически изменять?
как все это в PD работает не знаю, т.к. PD дичаюсь пока.
но вот в DelphiX все просто.
слздаем нужный спрайт с нужными параметрами.
а потом изменяем значения на далее необходимые.
все динамически.
наверное я не понял вопроса?
можно тогда как "для особо тупых"?
Sacred (2003-09-28 22:15:00) [3]Посмотри файл GLSceneEditor.pas...это редактор самой сцены...может чем поможет
Andrew R2D2 (RnD) (2003-09-28 21:57:00) [4]При таком способе присвоения (b:=a) ВСЕ манипуляции над Line влияют и на Line1 что не есть хорошо...
Линия имеет кучу параметров, в том числе и Nodes (список вершин с их параметрами).
При динамическом создании линии прийдется заново прописывать все параметры линии и параметры каждой вершины, поэтому необходима возможность создания копии объекта типа TLines.
Карлсон (2003-09-28 21:01:00) [5]а чего прописывать то?
просто присвоить значения слабо уже?
a:=10;
b:=a;
так не катит?