Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 18.03.2014
Сообщений: 95

Передать многомерный массив в функцию

17.01.2026, 17:18. Показов 3099. Ответов 42
Метки нет (Все метки)

Доброго времени!

Как в функцию передать ссылку не на нулевую строку, а на первую? Сейчас мне приходится
добираться до значения так: ArrayFields[1,0,2], а хотелось бы сразу так: ArrayFields[0,2].
Пока решил тем, что добавляю дополнительный параметр integer, указывающий на номер строки.

Создал многомерный массив таким образом:
Delphi
1
2
3
4
5
6
7
8
9
type
   AF = array[0..1, 0..1, 0..2] of PAnsiChar;
 
const ArrayFields : AF = (
(('Прямоугольник', 'Треугольник', 'Круг'),
('Круг', 'Прямоугольник', 'Треугольник')),
(('Яблоко', 'Апельсин', 'Груша'),
('Общее количество строк (по умолчанию 5):', 'NIL', 'BtnVariable'))
);
Передаю его в функцию:
Delphi
1
2
3
4
5
6
7
Foo(ArrayFields);
 
Сама функция:
FUNCTION Foo(ArrayFields : AF) : BOOLEAN;
BEGIN
...
END;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2026, 17:18
Ответы с готовыми решениями:

Как занести многомерный массив в edit через буфер обмена?
как заставить Delphi прочитать многомерный массив из буфера обмена???? реально ли так сделать, у...

Многомерный массив (матрица)
Помогите пожалуйста решить такую задачку: задана квадратная матрица, нужно составить два вектора:...

Многомерный массив или записи?
Дана информация о студентах: курс, группа, оценки. Мне нужно будет выяснять средний балл каждой...

42
1 / 1 / 0
Регистрация: 18.03.2014
Сообщений: 95
19.02.2026, 14:06  [ТС]
Цитата Сообщение от Massaraksh7 Посмотреть сообщение
Но это неудобно. Я бы сделал ОДНУ строку, в которой через разделители бы передавалась ВСЯ информация, а подпрограмма бы уже парсила.
Действительно, я даже об этом и не подумал. Спасибо еще раз огромное!
0
 Аватар для krapotkin
6852 / 4678 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
19.02.2026, 15:36
ну как и предполагалось... XYZ. поддерживать это никаких мозгов не хватит.

Вы имеете обычный список объектов и значения для некоторых их полей.
С этой задачей ежедневно работают примерно все.
И редко кто создает для решения массивы массивов, да еще и PAnsiChar.

Делфи как-то справляется с помощью файлов DFM.
Вся остальная отрасль сначала пользовалась XML, теперь обычно - JSON.

JSON
1
2
3
4
5
6
7
{
"objects":[
  {"type":"TEdit", "name":"e1", "left":55, "top", 72, "width": 150, "height":25},
  {"type":"TButton", "name":"b1", "caption":"OK", "left":220, "top", 100, "width": 80, "height":25},
  {"type":"TButton", "name":"b2", "caption":"Отмена", "left":240, "top", 100, "width": 100, "height":25}
  ]
}
примерно то же, что у вас, но разложенное по полочкам
если вы создадите объекты, то их свойства можно даже автоматически заполнить из соответствующего JSON-объекта
0
1 / 1 / 0
Регистрация: 18.03.2014
Сообщений: 95
19.02.2026, 16:43  [ТС]
Спасибо, что ответили.

Цитата Сообщение от krapotkin Посмотреть сообщение
Вся остальная отрасль сначала пользовалась XML, теперь обычно - JSON.
Верно, в js так и делаем.

Сейчас пишу плагин в виде dll для программы, которая в 2010 была создана, в то время и шаблон для плагинов был написан, не хочется там все переделывать, да и в Делфи я с начала этого года.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2026, 16:43

Многомерный динамический массив
Правильно обьявляю динамический массив? ram: array of array of array of string; а...

EAccessViolation на многомерный массив
Есть вот такой код: ... var MessGn: array of array of array of real; ... Z:=1; Imax:=4;...

Многомерный массив и запись его в текстовый документ
Доброго времени суток дорогие друзья Мне нужна ваша помощь А именно сгенерировать массив из 3х...

Многомерный динамический массив
Доброго времени суток! Помогите пожалуйста разобраться с такой задачкой: Необходимо объявить...

Многомерный массив в аргументах функций
ВСЕМ ПРИВЕТ! :help: У МЕНЯ ПРОБЛЕМА!!!!! НЕ МОГУ ИСПОЛЬЗОВАТЬ ФУНКЦИЮ. ВЫДАЕТ ОШИБКУ E2010...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru