Moin,
Jeder Nachfahre von TObject hat eine Methode ClassNameIs, die Du zu dieser Prüfung nutzen kannst.
Noch eine Anmerkung zu Deinem Quelltext: Du referenzierst hier in einer Methode eine Instanz des Methodeneigners. Dadurch ist es nicht mehr möglich, eine weitere Instanz zu erstellen, die wie gewünscht arbeitet.
Außerdem ist an dieser Stelle die Zuweisung zu einer lokalen Variablen überflüssig.
Delphi-Quellcode:
procedure TForm1.CB_Item_ArtChange(Sender: TObject);
var
I: Integer;
StrList: TStringList;
// Form: TForm; ueberfluessig
begin
//Form := Form1;
StrList := TStringList.Create();
For I := 0 to {Form.}ComponentCount - 1 do
begin
if Components[I].ClassNameIs (CB_Item_Art.Text) then
begin
StrList.add({Form.}Components[I].Name);
end;
end;
CB_Item.Clear;
CB_Item := StrList; // das funktioniert nicht
end;