Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Variant to TObject


Автор: _Dimon_ 22.2.2011, 12:16
С документации фастрепорт:

Поскольку все параметры представляются как массив типа Variant, вам надо 
преобразовать их в объекты.
Код

fsScript1.AddMethod('procedure HideButton(Button: TButton)', 
CallMethod); 
{ обработчик }
function TForm1.CallMethod(Instance: TObject; ClassType: TClass; const 
MethodName: String; 
  var Params: Variant): Variant; 
begin 
  TButton(Integer(Params[0])).Hide;  {КАК ЭТО НАПИСАТЬ НА СИ}
end;


Вопрос не в фастрепорте, а в том, как привести Variant к TObject, TWinControl ... и т.д. и т.п.

Автор: _Dimon_ 22.2.2011, 18:26
Вопрос решен
Код

TButton* button = ((TButton*) &(Params.GetElement(0)));

//или как в примере
((TButton*) &(Params.GetElement(0)))->Hide();



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)