Mógłbyś spróbować rzutowania, ale musisałbyś wiedzieć z jakiej klasy jest komponent, np. jeżeli jesteś pewny, że komponent o podanej nazwie jest z klasy TEdit
i chciałbyś go pokazać metodą Show
- musiałbyś zrobić takie cuś:
var
sCmpName: String;
begin
{ pobranie z bazy nazwy komponentu do zmiennej sCmpName }
{ pokazanie komponentu o przechowywanej nazwie }
TEdit(FindComponent(sCmpName)).Show();
Jeżeli nie znasz klasy komponentu czy po prostu przechowujesz w bazie nazwy komponentów z róznych klas - zastosuj notację węgierską - będziesz mógł po nazwie komponentu "rozpoznać" jego klasę, lub odczytaj ją sam przez takie cuś:
var
sCmpName,
sCmpClassName: String;
begin
{ pobranie z bazy nazwy komponentu do zmiennej sCmpName }
{ wyciągnięcie nazwy klasy obiektu o przechowywanej nazwie }
sCmpClassName := FindComponent(sCmpName).ClassName;
Później sprawdzasz jaka jest nazwa klasy w zmiennej sCmpClassName
i odpowiednio rzutowanie wykonujesz;
EDIT: Niestety nie możesz wykorzystać bezpośrednio łańcucha do rzutowania... np. w ten sposób:
sCmpClassName(FindComponent(sCmpName)).Show();
Takie coś kompilator nie przełknie, a szkoda, choć kompilator musi wiedzieć jak traktować komponent;