Thx, mir fiel nicht auf, dass es einen Unterschied macht, ob das :
ShowMessage(IntToStr(ComponentCount - 1));
innerhalb oder ausserhalb des 'with' Blocks steht. Durch 'with TestDM' hat dieses Priorität und weil es leer ist kommt -1 raus. Dadurch funktioniert die Schleife nicht usw. ...
Das with kommt da jetzt weg und fertig.