Вниз
Скачать: CL | DM;

GLScene - копирование обьекта в процессе выполнения программы   Найти похожие ветки 

 
Andrew R2D2 (RnD)   (2003-09-28 19:15) [0]

Подскажите, пожалуйста, как в runtime (!) организовать копирование объекта (или присвоение его свойств другому объекту). Мне нужно скопировать линию - создавать новый объект, прописывать заново все вершины и их свойства слишком накладно.

Строка типа Line.Assign(Form1.Lines1); вызывает ошибку и к тому же, насколько я понимаю, Assign просто передает указатель на Lines1 в Line, а не копирует свойства объекта.


 
Карлсон ©   (2003-09-28 21:01) [1]

а чего прописывать то?
просто присвоить значения слабо уже?
a:=10;
b:=a;
так не катит?


 
Andrew R2D2 (RnD)   (2003-09-28 21:57) [2]

При таком способе присвоения (b:=a) ВСЕ манипуляции над Line влияют и на Line1 что не есть хорошо...
Линия имеет кучу параметров, в том числе и Nodes (список вершин с их параметрами).
При динамическом создании линии прийдется заново прописывать все параметры линии и параметры каждой вершины, поэтому необходима возможность создания копии объекта типа TLines.


 
Sacred ©   (2003-09-28 22:15) [3]

Посмотри файл GLSceneEditor.pas...это редактор самой сцены...может чем поможет


 
Карлсон ©   (2003-09-28 22:59) [4]

хорошо, есть положим эта самая линия начальная.
у нее есть координаты и всякое такое.
нужно создать копию линии в данных же координатах или в начальных?
ведь при создании новой линии вы только назначаете начальные значения, а потом уже их изменяете.
что мешает динамически загрузить параметры, а потом их же динамически изменять?
как все это в PD работает не знаю, т.к. PD дичаюсь пока.
но вот в DelphiX все просто.
слздаем нужный спрайт с нужными параметрами.
а потом изменяем значения на далее необходимые.
все динамически.

наверное я не понял вопроса?
можно тогда как "для особо тупых"?


 
Andrew R2D2 (RnD)   (2003-10-02 10:38) [5]

Объясняю ситуацию:
В сцене присутствует линия Lines1(в данном случае созданная динамически - вершины прописываются во время выполнения програмы, цвет и прочие параметры линии тоже описываются динамически).
Необходимо создать копию этой линии, расположенную на экране например на 100 пикселей ниже чем оригинал.

Мой вариант с динамическим созданием Lines2, операцией присвоения Lines2:=Lines1 и последующим изменением координат Lines2 приводит  к изменению положения оригинала (т.е. получается теперь просто есть две ссылки - Lines1 и Lines2 - на один и тот же объект).

"создаем нужный спрайт с нужными параметрами.
а потом изменяем значения на далее необходимые.
все динамически." - можно пример ?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.039 c
1-1080294793
voland
2004-03-26 12:53
2004.04.11
Присвоение событию процедуры


1-1082637020
killer
2004-04-22 16:30
2004.04.11
StringGrid


1-1080217675
NewDelphiUser
2004-03-25 15:27
2004.04.11
Отмена секунд в TDateTimePicker


1-1082382179
Ruslan
2004-04-19 17:42
2004.04.11
Как поместить картинку в заголовок ListView?


3-1078399668
Spectre
2004-03-04 14:27
2004.04.11
Задание значения NULL через параметры




   Наверх