Tak się zastanawiałem, czy istnieje w Delphi możliwość wywołania pola/metody obiektu nieokreślonej klasy, a potem w innym miejscu w kodzie określenia jaka to klasa? Załóżmy, że mamy kilka podobnych klas wykonujących te same operacje ale każda eksportuje wyniki do pliku o innym rozszerzeniu. Teraz chcę napisać funkcję wykonującą kilka operacji wspólnych dla wszystkich tych klas, a następnie eksportującą wynik do pliku. Szkoda by było dla każdego rozszerzenia pisać osobne funkcje wykorzystujące w każdym przypadku te same pola/metody różnych klas, więc zastanawiałem się czy nie byłoby możliwe napisać jedną funkcję a później w zależności od wyboru użytkownika dynamicznie określić którą klasę wykorzystuje. Przykładowo, załóżmy że mamy dwa takie same pola w różnych klasach:
ExportToBMP.Filename
ExportToPNG.Filename
Czy dałoby radę napisać funkcję która wykorzystywałaby to pole w następujący sposób:
procedure Exportuj;
begin
// (...)
temp.Filename = Edit1.Text;
// (...)
end;
...a później gdzieś w kodzie obiekt temp zostałby ustalony jako instancja ExportToBMP
, ExportToPNG
etc. w zależności od np. wartości ComboBoxa? Takie coś bardzo by uprościło kod. Można tak w Delphi zrobić? Czy raczej trzeba będzie każdą funkcję pisać z osobna?