|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Значение из dll до конца работы функции
Столкнулся сегодня с такой проблемой: в библиотеке у меня определена функция, тип результата которой - array of string. Динамические массива - штука не страшная, и в ходе выполнения функции задать размер массива - естественно, не проблема.
Проблема кроется в следующем: при определении функции в самой программе, используется тот же тип (array of string). И, естественно, я не смогу получить данные из библиотеки до тех пор, пока не укажу размер массива. Собственно, сам вопрос: как мне узнать размер динамического массива, создаваемого в dll, до того, как его значения будут переданы в основную программу? Вот код, используемый в библиотеке (в AdoQuery у меня стоит оператор SELECT) Код:
type TNHArray = array of string; function notesload(uid: integer): TNHArray; var i: integer; begin with datamodule5.adoquery1 do begin sql[1]:='nheader'; sql[3]:=inttostr(uid); active; setlength(result, recordcount); for i:=0 to recordcount do begin result[i]:=fields[i].asstring; end; end; end; З. З. Ы. Возможно, есть более изящное решение задачи, но я его не вижу... Если поможете найти его вместо решения возникшей проблемы, тоже буду очень благодарен |