![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передать в функцию массив из структуры -- как??? [D7, WinXP]
cvg © (2004-08-11 13:40:00)Hi Masters! Имеется структурка типа:
type MyRec =
record
name:string;
ar:array [0..5] of double;
......
end;
MyArr = array of MyRec;
var A:MyArr;
Как передать в функцию не один элемент -- скажем, A[n].name, -- а массив всех names?
cvg (2004-08-11 14:25:00) [41]Ну, не пинай сильно -- я просто имел ввиду, что если у меня в структуре есть поля name и name1 и некоторая функция f() при первом вызове должна обработать все поля name, а при втором -- все поля name1, то как это ей красиво и корректно передать?
begin...end (2004-08-11 14:16:00) [42]
> но только вот хотелось бы лишнее не пердавать
Можно передавать только ссылку.
> А если первый раз names, а второй names1 -- тогда как???
А что это за Names1? Ещё одно поле?
Так это уже должна быть другая функция. Или я чего-то не понял?
cvg (2004-08-11 13:59:00) [43]Ну-у, все-то целиком передать, конечно, можно, но только вот хотелось бы лишнее не пердавать. Скажем, если в функции используются только names, то, выходит, мне придется внутри функции помнить, что из переданной структуры надо отбрать именно все names. А если первый раз names, а второй names1 -- тогда как???
Anatoly Podgoretsky (2004-08-11 13:51:00) [44]Так как тип создан, то это правильно.
wal (2004-08-11 13:49:00) [45]function aaa(arr: MyArr): ResultType;
Помоему так.
С уважением.
Anatoly Podgoretsky (2004-08-11 13:46:00) [46]Функция не наблюдается
Но в принципе нужно создать тип массива.