Moin !
So ich habe mal ne Demo erstellt wo ich das etwas "händisch" durchgehe.
Ich will damit nur mal andeuten was ich eigentlich realisieren möchte.
Der wichtige Teil ist das hier:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
C: TComponent;
ClassName, CompName, PropertyName :
String;
Value :
String;
begin
ClassName := '
TCheckBox';
// die werte kämen aus der XML Struktur ...
CompName := '
CheckBox1';
PropertyName := '
Caption';
Value := '
Hallo Welt';
C := FindComponentEx('
Form1.CheckBox1');
if C.ClassName = ClassName
then begin
if ClassName = '
TCheckBox'
then
// 0 // 1 // 2 // 3
case AnsiIndexText(LowerCase(PropertyName), ['
caption', '
text', '
lines', '
height'])
of
0 : TCheckBox(C).Caption := Value;
3 : TCheckBox(C).Height := StrToInt(Value);
end;
if ClassName = '
TEdit'
then
case AnsiIndexText(LowerCase(ClassName), ['
caption', '
text', '
lines', '
height'])
of
1: TEdit(C).Text := Value;
end;
end;
end;
Nun wäre es aber müssig die ganzen verfügbaren Komponenten zu Fuss so durchzugehen.
In meinem Fall würde das sicher gehen, da ich nicht so viel an Komponenten verwende und meist eh nur Caption oder Text anpassen muss. Aber generell würde ich das schon gerne vereinfache.
Geht das evtl. mit
RTTI Mitteln? Und wenn ja ... Hat da jemand ein Beispiel zu ?