Einzelnen Beitrag anzeigen

mcbain

Registriert seit: 18. Mai 2011
50 Beiträge
 
#8

AW: TObjectList unterschiedliche Objekte erkennen?

  Alt 24. Okt 2011, 08:08
Ok, ich versuche es beispielhaft zu erklären.
Habe folgende Klassen:

TAuto:
Code:
 TAuto = class(TObject)
      private    
        FHersteller: string;    

      published
        property Hersteller: string read FHersteller write FHersteller;
      end;
TCabrio:
Code:
 TCabrio = class(TAuto)
      private    
        FSitze: integer;    

      published
        property FSitze: string read FSitze write FSitze;
      end;
TCoupe:
Code:
 TCoupe= class(TAuto)
      private    
        FSitze: integer;    

      published
        property FSitze: string read FSitze write FSitze;
      end;

Nun speichere ich Objekte in meiner TObjectlist:
Code:
var: AutoListe: TObjectList;
     Cabrio: TCabrio;
     Coupe: TCoupe:
     Auto: TAuto;

 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(Auto);
 Cabrio.FSitze := 2;

 AutoListe.Add(Cabrio);
Und hier möchte ich auselesen, um welches Objekt es sich handelt:
Code:
for i := 0 to ObjectList.Count - 1 do
begin
  Auto := TAuto(ObjectList.Items[i]);

  if (Auto is TCabrio) then
     ShowMessage('Es ist ein Cabrio');

  if (Auto is TCoupe) then
     ShowMessage('Es ist ein Coupe');
end;
Aber es wird mir keine ShowMessage-Box erzeugt, somit erkennt er mir auch nicht mein Objekt.
  Mit Zitat antworten Zitat