Delphi-Quellcode:
Type
TMyForm = class (TForm)
...
Function GetEditByIndex(index : Integer) : TEdit;
protected
property Edit[index : Integer] : TEdit Read GetEditByindex;
end;
Function TMyForm.GetEditByIndex(index : Integer) : TEdit;
Begin
Result := FindComponent(Format('Edit%d',[index])) as TEdit
End;
Da es den Aufrufer nichts angeht, wie ich das löse, verberge ich die Implementierung hinter einem Getter. Außerdem und überhaupt ist es so wenigstens lesbar. Im Getter kann ich immer noch ein Array verwenden, wenn ich mag.
Ich persönlich mag FindComponent nicht, denn wenn ich einmal den Namen meiner Komponente ändere, kompiliert das Programm trotzdem, funktioniert aber nicht mehr. Mit einem Array (Initialwerte zuweisen im FormCreate) gibt es wenigstens einen Syntaxfehler.