Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.17;
Скачать: CL | DM;

Вниз

Запись элементов в динамический массив.   Найти похожие ветки 

 
parasolka   (2011-04-06 12:36) [0]

Доброго времени суток. Есть динамический массив элементов определённого класса.

dinArray: array of myClass;

Как записать в массив не указатель, а сам объект типа myClass?


 
Медвежонок Пятачок ©   (2011-04-06 12:38) [1]

никак. сам объект это и есть указатель


 
И. Павел ©   (2011-04-06 15:24) [2]

> [0] parasolka   (06.04.11 12:36)

Вы лучше скажите - какую цель хотите этим достичь. Тогда будет понятно - что вам порекомендовать.


 
sniknik ©   (2011-04-06 19:15) [3]

> сам объект это и есть указатель
ну, это если он объектом объект называет, а ну как его "определённый класс" это рекорд? ;)

> какую цель хотите этим достичь. Тогда будет понятно - что вам порекомендовать.
цель коммунизм! что порекомендуешь? :)


 
Ega23 ©   (2011-04-06 19:45) [4]


> цель коммунизм! что порекомендуешь? :)

Вот это:
http://ru.wikipedia.org/wiki/2%D0%9065


 
_Юрий   (2011-04-06 20:10) [5]

В общем то, если заморочиться, то можно записать и сам объект в массив.
Перекрыв NewInstance так, чтобы вернулся буфер из массива.
Но для этого надо иметь достаточно веские причины.
Услышим ли мы описание причин от автора ветки?


 
И. Павел ©   (2011-04-07 08:07) [6]

> [4] Ega23 ©   (06.04.11 19:45)

Сейчас уже точечными залпами не обойтись. Нужны массовые аргументы:
http://ru.wikipedia.org/wiki/%D0%9F%D1%83%D0%BB%D0%B5%D0%BC%D1%91%D1%82_%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0


 
Leon-Z ©   (2011-04-07 10:23) [7]

Вам верно нужно так:

var
 dinArray: array of myClass;
 i: Integer;
 myClassInst: myClass;
begin
// устанавливаем размер массива = 10 элементам
 SetLength(dinArray, 10);
// наполняем массив указателями на экземпляры класса
// сами объекты в Delphi всегда динамические, поэтому
// вегда обращение к ним идет через указатель, хотя явно,
// как в Pascal мы не разименовываем их.
 for i := 0 to 9 do
 begin
   myClassInst := myClass.Create;
   dinArray[i] := myClassInst;
 end;
// вызываем метод myClass вот так например:
 for i := 0 to 9 do
   dinArray[i].Vizvat_Metod_myClass(x, y, z);
end;


 
Ega23 ©   (2011-04-07 10:30) [8]


> Вам верно нужно так:

А зачем нужна переменная myClassInst?

for i := 0 to 9 do
  dinArray[i] := myClass.Create;


 
Leon-Z ©   (2011-04-07 10:36) [9]


> Ega23 ©   (07.04.11 10:30) [8]

Чтобы понятнее было. Вопрос задан явно новичком. :)


 
Dennis I. Komarov ©   (2011-04-07 11:05) [10]


> var  dinArray: array of myClass;

dinArray: array of pointer;



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

Текущий архив: 2011.07.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1301692279
istok
2011-04-02 01:11
2011.07.17
Просьба попороть иконки...


13-1126787622
MeF Dei Corvi
2005-09-15 16:33
2011.07.17
Порядок создания статических классов


15-1301689794
Юрий
2011-04-02 00:29
2011.07.17
С днем рождения ! 2 апреля 2011 суббота


2-1302261977
Savek
2011-04-08 15:26
2011.07.17
как вставить формул в эксель?


15-1301902882
brother
2011-04-04 11:41
2011.07.17
Монитор не печатает и принтер не показывает...