Мой вопрос ниже.
Вот мои настройки:
interface
uses windows, {...,} uPSComponent_Default, uPSComponent, uPSRuntime, uPSComponent_Controls;
TForm1 = class(TForm)
//...
PSScript1: TPSScript;
PSImport_Classes1: TPSImport_Classes;
PSImport_Controls1: TPSImport_Controls;
procedure PSScript1Compile(Sender: TPSScript);
//...
Private
procedure NewItem(const Caption:string; const SubItems:TStringList);
//...
end;
implementation
{...}
procedure TForm1.PSScript1Compile(Sender: TPSScript);
begin
//...
Sender.AddMethod(Self, @TForm1.NewItem, 'procedure NewItem(const Caption:string; const SubItems:TStringList);');
//...
end;
Почему я получаю следующую ошибку при попытке скомпилировать любой скрипт.
[Error] (1:1): Unable to register function procedure NewItem(const Caption:string; const SubItems:TStringList);
Я знаю, что это связано с моей попыткой импортировать метод NewItem в компилятор PS, но я не знаю, почему он не примет TStringList. Я знаю, что это TStringList, потому что если я возьму параметр TStringList и просто использую метод со следующей сигнатурой, то все будет работать.
procedure NewItem(const Caption:string);
Я не могу найти никаких ссылок, говорящих о том, что я не могу передавать объекты назад и вперед между компилятором / скриптом и моим кодом Delphi, но я начинаю думать, что, возможно, существует ограничение в выполнении именно этого типа вещей.
Имеет ли смысл пытаться передать массив строк вместо TStringList?