В моем коде Delphi (2010) у меня есть класс TImageItem, который я открыл для DWScript через:
dwsUnit.ExposeRTTI(TypeInfo(TImageItem),[eoNoFreeOnCleanup, eoExposePublic]);
В dwsUnit я объявил функцию для получения TImageItem со стороны Delphi:
function GetImage: TImageItem;
и на стороне Delphi:
procedure TFScript.dwsUnitFunctionsGetImageEval(info: TProgramInfo);
begin
...
// (Item is a TImageItem and not nil)
Info.ResultAsVariant := TdwsRTTIVariant.FromObject(Item);
end;
Однако, когда я запускаю скрипт, начинающийся так:
var Item: TImageItem;
Item := GetImage;
...
Я получаю EScriptError во время вызова GetImage с сообщением «Объект уже уничтожен».
Что я делаю неправильно? Я выставляю объект или возвращаю его неправильно?