Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: TObjectList unterschiedliche Objekte erkennen?

  Alt 24. Okt 2011, 08:29
Du castest ja das Auto nur als Cabrio. Sein tut's immer noch ein TAuto ...So wird ein Schuh draus:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  AutoListe: TObjectList;
  Cabrio : TCabrio;
  Coupe : TCoupe;
  Auto : TAuto;
  ListenAuto : TObject;
  i : integer;
begin
  AutoListe := TObjectList.Create;
  Auto := TAuto.Create;
  Auto.FHersteller := 'BMW';

  Coupe:= TCoupe(Auto);
  Coupe.FSitze := 4;

  AutoListe.Add(Coupe);

  Auto := TAuto.Create;
  Auto.FHersteller := 'VW';

  Cabrio:= TCabrio.Create;
  Cabrio.FSitze := 2;

  AutoListe.Add(Cabrio);

  for i := 0 to AutoListe.Count - 1 do
  begin
    ListenAuto := AutoListe.Items[i];

    if (ListenAuto is TCabrio) then
    begin
       ShowMessage('Es ist ein Cabrio');
    end
    else if (ListenAuto is TCoupe) then
    begin
       ShowMessage('Es ist ein Coupe');
    end
    else
    begin
       ShowMessage(Auto.ClassName);
    end;
  end;
end;
Edit: ups, zu spät.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat