ich habe ein Interface und zwei (mehrere) abgeleitet Klassen geschrieben:
Code: Alles auswählen
IMyInterface = interface(IUnknown)
['{CC79C31B-E310-4D22-BCE9-0A8E88DA917E}']
procedure doSomething;
end;
TTestClass1 = Class(TInterfacedObject, IMyInterface)
public
procedure doSomething;
end;
TTestClass2= Class(TInterfacedObject, IMyInterface)
public
procedure doSomething;
end;
Code: Alles auswählen
procedure mainLoop;
var
objList : TObjectList;
obj1 : TTestClass1;
obj2 : TTestClass2;
begin
// ObjectListe und Objekte instanziieren
objList := TObjectList.create(false);
obj1 := TTestClass1.Create;
obj2 := TTestClass2.Create;
// Objekte der Liste hinzufügen
objList.Add(obj1);
objList.Add(obj2);
// ObjectListe abarbeiten und verkleinern
while objList.First<> nil do begin
(objList.First as IMyInterface).doSomething;
objList.Remove(objList.First);
end;
end;
Ändere ich jedoch
Code: Alles auswählen
objList := TObjectList.create(true);
Was mache ich falsch?
Vielen Dank und besten Gruß
Marc