В процедуру передаётся переменная (скажем in_out_array), объявленная как array of [type].
В процедуре во время работы массив заполняется данными.
Проблема:
Но, при попытке сделать SetLength(in_out_array, <число>) компилятор ругается: Error: Type mismatch.
Текущее решение:
in_out_array объявлена в секции var unit'а.
Вопрос:
Как вывести динамический массив из процедуры или функции, не используя var? Может у кого-нибудь был такой опыт?
Выносить in_out_array в общий var как-то не хочется, ибо тогда в var unit'а будет кучка таких вот переменных.
Предположение:
Может попробовать использовать указатели (ещё не пробовал, вдруг у кого-то есть решение этой проблемы)?
Вот урезанный код:
- Код: Выделить всё
type t_objSQL_Struct = record
from_table, from_field: string;
to_table, to_field : string;
end;
procedure objSQL_link_getStruct(in_link_string: string; var out_link_struct: array of t_objSQL_Struct);
begin
SetLength(out_link_struct, 0);
end;