Delphi Web Script: как найти имя класса Script-TClass в Delphi - PullRequest
1 голос
/ 18 августа 2011

Представьте себе эту процедуру, которая вызывается в скрипте:

// Foo is not implemented in the Script but via Delphi
procedure Foo(ClassType: TClass); 

Сценарий выглядит так:

type 
  TMyClass = class
  end;

Foo(TMyClass);

Когда вызывается Foo, мое Delphi-приложение видит значение Int64-значениедля ClassType.

e.g. Foo(661259635); 

В источниках DWS видно, что TClass явно преобразуется в Int64 (см. dwsCompiler.pas, procedure TObjectClassTypeMethod.Execute -> Info.ResultAsInteger := Int64(info.ValueAsClassSymbol[SYS_SELF]);).

Теперь, в какой структуре я могу искать это число, чтобы найти соответствующий класс TdwsClass?

Примечание. На самом деле TMyClass не реализован в сценарии, а создан с помощью приложения Delphi ... Не знаю, имеет ли это значение.

1 Ответ

1 голос
/ 19 августа 2011

В настоящее время вам необходимо привести Int64 обратно к TClassSymbol вручную, преобразование выполняется для сохранения ссылки в варианте (который не поддерживает TClass).найдите таблицу символов или перейдите к элементам.

В настоящее время нет помощника IInfo для символов класса.

...