Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1301936177
Leon-Z
2011-04-04 20:56
2011.07.17
БД в формате XML ???


15-1301633276
И. Павел
2011-04-01 08:47
2011.07.17
Тормозит обращение к MS SQL SERVER, причем только иногда


15-1301721561
Kerk
2011-04-02 09:19
2011.07.17
Новые видеокурсы :)


11-1235129408
DonJad
2009-02-20 14:30
2011.07.17
KOL размер приложения в оперативной памяти


8-1213789056
Виталя
2008-06-18 15:37
2011.07.17
Сдвиг изображения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский