Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Komponenten Property ändern ála 'TLabel'(Comp.).'Caption

  Alt 19. Mär 2009, 16:58
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 = 'TCheckBoxthen
                                                  // 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 = 'TEditthen
      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 ?
Angehängte Dateien
Dateityp: zip translating_143.zip (11,5 KB, 3x aufgerufen)
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat