Вообщем вродь разобрался. Решилась проблема с помощью перекрытия метода
Код:
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
реализовал ее таким образом:
Код:
procedure TComponentC.GetChildren(Proc: TGetChildProc; Root: TComponent);
var
i: Integer;
begin
for i:= 0 to ControlCount - 1 do
if (not (Controls[i] is TComponentA)) and (not (Controls[i] is TComponentB)) then
Proc(TComponent(Controls[i]));
end;