AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array mit unterschiedlichen Datentypen

Ein Thema von holle · begonnen am 3. Nov 2006 · letzter Beitrag vom 4. Nov 2006
 
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Array mit unterschiedlichen Datentypen

  Alt 4. Nov 2006, 11:28
Zitat von shmia:
Wenn alle Klassen von einer gemeinsamen Basisklasse abgeleitet wurden,
und diese Basisklasse virtuelle Methoden hat ist das kein Problem.
Ausser eventuell bei
Delphi-Quellcode:
Haus1 := THausA.Create(...);
Haus2 := THausB.Create(...);
Haus3 := THausC.Create(...);
Haus4 := THausD.Create(...);
Da wirds wohl nicht ohne weiteren Aufwand kürzer gehen.... Aber für den Rest ist die Erzeugung einer Basisklasse der richtige Weg:

Delphi-Quellcode:
THaus = class(TObject)
protected
   procedure Zeichnen ; virtual ; abstract ;
   procedure TuerAuf ; virtual ; abstract ;
   procedure TuerZu ; virtual ; abstract ;
end ;

THausA = class(THaus)
public
   procedure Zeichnen ; override ;
   procedure TuerAuf ; override ;
   procedure TuerZu ; override ;
end ;
 // THausB usw. analog

implementation
 
procedure THausA.Zeichnen ;
begin
    inherited Zeichnen ;
    // Deine Zeichenroutine für Haus A
end ;

// usw.
Die Häuser würd ich dann nicht in einem Array sondern TObjectList ablegen. Dann sieht dein obiger Code verkürzt so aus:

Delphi-Quellcode:
procedure AlleZeichnen ;
var
  Haeuser : TObjectList;
begin
    HausA := THausA.Create ;
    HausB := THausB.Create ;
    HausC := THausC.Create ;
    HausD := THausD.Create ;

    Haeuser := TObjectList.Create ;
    Haeuser.Add (HausA) ;
    Haeuser.Add (HausB) ;
    Haeuser.Add (HausC) ;
    Haeuser.Add (HausD) ;
    for i := 0 to Haeuser.count-1 do begin
       (Haeuser[i] as THaus).Zeichnen ;
       (Haeuser[i] as THaus).TuerAuf;
       (Haeuser[i] as THaus).TuerZu;
    end ;
end ;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz