Вот, приехал домой и накидал код:
Код:
uses
TypInfo, StrUtils, System.Types;
procedure TForm1.SetControlProperty(prop : String; value : Variant);
var
compName : String;
propName : String;
obj : TComponent;
arr : TStringDynArray;
begin
arr := SplitString(prop,'.');
if Length(arr) <> 2 then
raise Exception.CreateFmt('Wrong component-property format. Expected "{component name}.{property name}", but got "%s".',[prop]);
compName := arr[0];
propName := arr[1];
obj := FindComponent(compName);
if not assigned(obj) then
raise Exception.CreateFmt('Component not found (%s).',[compName]);
SetPropValue(obj,propName,value);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetControlProperty('Edit1.text','value1');
SetControlProperty('Label1.caption','label caption value');
SetControlProperty('MaskEdit1.text','mask value');
SetControlProperty('SpinEdit1.value',121);
SetControlProperty('Edit2.text','edit on panel');
SetControlProperty('Edit3.text','edit in group box');
end;
Как понятно из кода, первые 3 компонента "лежат" на самой форме, а вот второй компонент - на панельке, 3й - в груп боксе.
Вроде как все работает...