Moin torud,
es gibt zwar die Funktion FindComponent, aber wenn Du das unbedingt selber lösen möchtest, dann ist so in Ordnung.
Ich würde allerdings entweder TComponent zurückgeben, also
function ComponentByName(str_Name: String) : TComponent;
oder vor der Rückgabe prüfen, ob es sich (mindestens) um ein TControl handelt, also
Delphi-Quellcode:
if (Components[i] is TControl)
and (...) then
Zusätzlich würde ich persönlich das ganze noch CaseInSensivitve machen z.B. mit (
Ansi)UpperCase:
if AnsiUpperCase(Components[i].Name) = AnsiUpperCase(str_Name) then
Grüsse
...Doc