Mam kilka klasy dziedziczacych po roznych przodkach, ale poniewaz dzialaja w tym samym srodowisku,
maja sporo wspolnych cech. Wiec kod wyglada tak:
for i := 0 to ComponentCount - 1 do begin
if Components[i] is TKlasaA then
TKlasaA(Components[i]).doSomethink;
if Components[i] is TKlasaB then
TKlasaB(Components[i]).doSomethink;
if Components[i] is TKlasaC then
TKlasaC(Components[i]).doSomethink;
if Components[i] is TKlasaD then
TKlasaD(Components[i]).doSomethink;
end;
Zeby moc obslugiwac obie klasy za jednym razem, utworzylem interfejs
zawierajacy wspolne metody i pola.
no i chcialem zrobic cos takiego:
for i := 0 to ComponentCount - 1 do
if Components[i] is IElement then
IElement(Components[i]).doSomethink;
ale Delphi mowi ze operatora is nie da sie stosowac w takim kontekscie...
jak zatem mam sprawdzic czy jakis obiekt implementuje dany interfejs?