Jak dostać się do zmiennych klasy kiedy:
Mam tablice obiektów
tab : array [0..9] of TCustomControl;
Jednak obiekty znajdujące sie w tablicy są pochodne od TCustomControl (tu: TObjRepeat, TObjWhile itd)
Metoda
if tab[i] is TObjRepeat then
TObjRepeat(tab[i]).zmienna
jest dla mnie niezadowalająca, ponieważ musiałbym stosować tą metodę dziesiątki razy.
Potrzebuję zatem przechowywać w jakiś sposób informację o klasie obiektu lub stworzyć funkcję odnajdującą klasę tego obiektu próbowałem tak:
function FindClass(Obiekt:TCustomControl):TClass;
begin
if Obiekt is TObjRepeat then result:=TObjRepeat;
if Obiekt is TObjWhile then result:=TObjWhile;
itd...
end;
potem uzycie funkcji:
var kl:TClass;
begin
kl:=FindClass(Obiekt);
kl(Obiekt).zmienna:=costam //to nie dziala
end;
I juz nie wiem ... chyba będę if'ował jak nie znajdę rozwiązania.
Dodam, że obiektów mam 7 a ich prawie wszystkie zmienne mają takie same nazwy.