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ś:
Kopiuj
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ś:
Kopiuj
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:
Kopiuj
sCmpClassName(FindComponent(sCmpName)).Show();
Takie coś kompilator nie przełknie, a szkoda, choć kompilator musi wiedzieć jak traktować komponent;