cast TObject using his ClassType?
delphi, tobject
Solution
It would be easier to use RTTI instead of explicit casting, ie:
uses
TypInfo;
setCtrlState([ memo1, edit1, button1], False);
procedure setCtrlState(objs: array of TObject; bState: boolean = True);
var
obj: TObject;
PropInfo: PPropInfo;
begin
for obj in objs do
begin
PropInfo := GetPropInfo(obj, 'ReadOnly');
if PropInfo <> nil then SetOrdProp(obj, PropInfo, not bState);
PropInfo := GetPropInfo(obj, 'Enabled');
if PropInfo <> nil then SetOrdProp(obj, PropInfo, bState);
end;
end;
Problem
how can i make my code to work ? :) i`ve tried to formulate this question but after several failed attempts i think you guys will spot the problem faster looking at the code than reading my 'explanations'. thank you. ``` setCtrlState([ memo1, edit1, button1], False); ``` _ ``` procedure setCtrlState(objs: array of TObject; bState: boolean = True); var obj: TObject; ct: TClass; begin for obj in objs do begin ct := obj.ClassType; if (ct = TMemo) or (ct = TEdit) then ct( obj ).ReadOnly := not bState; // error here :( if ct = TButton then ct( obj ).Enabled:= bState; // and here :( end; end; ```