В своем проекте вынес в отдельную библиотеку некий фунционал. В библиотеке оформил его в функцию результат вычислений которой состоит из нескольких значений типа Currency и Strung.
Возращаю эти значения в основную программу через Record
Что то типа
в библиотеке:
- Код: Выделить всё
type
rec=record
i1:Integer;
i2:Integer;
end;
function SOMessage(send1,send2: Integer) : rec;
begin
result.i1:=send1+send2;
result.i2:=5*6;
end;
exports SOMessage;
В основной программе
- Код: Выделить всё
type
rec=record
i1:Integer;
i2:Integer;
end;
function SOMessage(send1,send2: Integer) : rec; external 'libproject1.so';
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:= IntToStr(SOMessage(1,8).i1);
end;
Все работает нормально, но не могу сообразить как за одно обращение/выполнение к фунции вывести в основной программе все другие значения Record
То есть не только результат выполнения в библиотечной функции i1 но и i2 (как можно видеть результат i2 считается в любом случае)
Конечно можно сделать так:
Edit1.Text:= IntToStr(SOMessage(1,8).i1);
Edit2.Text:= IntToStr(SOMessage(1,8).i2);
Но тут получится два отдельных обращения к функции а она (функция) в моем случае очень "тяжелая" по выполнению и поэтому нужно получить все значения за один проход.