Delphi создать указатель на массив указателей

программирование Delphi pascal делфи Object Pascal

Как создать указатель на массив указателей, с которым потом можно работать как с массивом? Вкратце: есть несколько одинаковых массивов указателей:

array1: array of ^TMyClass;
array2: array of ^TMyClass;
array3: array of ^TMyClass;
array4: array of ^TMyClass;
...
arrayN: array of ^TMyClass;

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

Пробовал по разному

workWith: ^array of ^TMyClass; - не корректно


workWith: array of ^TMyClass;

workWith := array2; - не работает
workWith := @array2; - не работает


workWith: Pointer;
workWith := @array2; - не работает

Да, я нуб, пожалуйста, объясните, как надо делать. TMyClass - сложный класс, наследованный от TObject, содержащий много чего. Как правильно сделать такое? Или никак, и придется для каждого массива копировать\вставлять копию алгоритма?
Ответы:
1) любой "объект" в Dephi это указатель на класс и данные объекта, поэтому не нужно лишний раз использовать указатель - пишем просто array of TMyClass;
2) чтобы оперировать массивами с одинаковым типом его нужно объявить так:
type
 TMyClassArray = array of TMyClass;
3) Чтобы использовать тип записываем его в описание переменных:
array1: TMyClassArray;
array2: TMyClassArray;
...
arrayN: TMyClassArray;
...
workWith: TMyClassArray;
4) используем что получилось:
workWith := array1;


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.