Показать сообщение отдельно
  #9  
Старый 20.03.2024, 06:28
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вот, приехал домой и накидал код:
Код:
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й - в груп боксе.
Вроде как все работает...
Ответить с цитированием