FreeOS Опубликовано 29 июня, 2015 Опубликовано 29 июня, 2015 Как создавать(ну и удалять,изменять) примитивные 3D фигуры (например Rectangle3D, Cube, Sphere ...) в runtime-ме в большом количестве. То есть я не знаю сколько мне надо фигур заранее. За ранее СПАСИБО Цитата
0 rareMax Опубликовано 29 июня, 2015 Опубликовано 29 июня, 2015 (изменено) Как вариант: Procedure DrawYou3d(Const Count:Integer); var You3d:Array of TYou3d; i:integer; Begin SetLength(You3d, Count); for i:=Low(You3d) to High(You3d) do BEGIN You3d:=TYou3d.Create(Self); You3d.Parent:=YouForm; END End; TYou3d - класс ваших 3д фигур YouForm - родитель("на ком" будут лежать они) (код писал без реальной проверки в студии - если не работает - скажите) Изменено 29 июня, 2015 пользователем Сысоев Максим Цитата
0 FreeOS Опубликовано 30 июня, 2015 Автор Опубликовано 30 июня, 2015 Как вариант: Procedure DrawYou3d(Const Count:Integer); var You3d:Array of TYou3d; i:integer; Begin SetLength(You3d, Count); for i:=Low(You3d) to High(You3d) do BEGIN You3d:=TYou3d.Create(Self); You3d.Parent:=YouForm; END End; TYou3d - класс ваших 3д фигур YouForm - родитель("на ком" будут лежать они) (код писал без реальной проверки в студии - если не работает - скажите) Попробовал вот так Procedure DrawYou3d(Const Count:Integer); var You3d:Array of TRectangle3D; i:integer; Begin SetLength(You3d, Count); for i:=Low(You3d) to High(You3d) do BEGIN You3d:=TRectangle3D.Create(self); // вот тут You3d.Parent:=Form1; END End; но выводится ошибка в [dcc32 Error] Unit1.pas(34): E2003 Undeclared identifier: 'self' PS так же хотелось бы чтобы фигуры рисовались по очереди, то есть нажал кнопку появился первый еще раз нажал появился второй и т.д. Цитата
0 rareMax Опубликовано 30 июня, 2015 Опубликовано 30 июня, 2015 1. вместо self - form1, или другой родитель, или nil По одной? ок. для этого: 1: You3d:Array of TRectangle3D; - переносишь в приват раздел твоей формы(form1=class(tForm) private You3d:Array of TRectangle3D). 2. SetLength(You3d, 0); - в конструкторе инициализируешь массив (вот тут могу врать - возможно это необязательно) 3. Procedure DrawYou3d; - создаешь в Public разделе класса(того же класса где и писал You3d:Array of TRectangle3D) в реализации метода пишешь: Procedure TYouClass.DrawYou3d; Begin SetLength(You3d, High(You3d)+1); You3d[High(You3d)]:=TRectangle3D.Create(self); // вот тут You3d[High(You3d)].Parent:=Form1; End; по желанию(ну или обязательно, тоже не помню) можешь в параметрах процедуры передать позицию фигуры Procedure DrawYou3d(Const X,Y:Single);/\ FreeOS 1 Цитата
Вопрос
FreeOS
Как создавать(ну и удалять,изменять) примитивные 3D фигуры (например Rectangle3D, Cube, Sphere ...) в runtime-ме в большом количестве.
То есть я не знаю сколько мне надо фигур заранее.
За ранее СПАСИБО
3 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.