Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array ohne Typ (https://www.delphipraxis.net/40729-array-ohne-typ.html)

mimi 20. Feb 2005 09:34


Array ohne Typ
 
Hallo,
ich möchte gerer einer funktion ein array ohne typ übergeben.

Um etwas genauer zu sein:
ich habe zwei array mit "fast" gleichen eigenschaften:
Delphi-Quellcode:
 TMoveWall = record
    x,y, // Position im Spielfehld
    w,h, // Größe vom Objekt
    typ, // Objekt Typ(Wall, MovePlatteX,....)
    richtung, // ob nach linx oder rechts
    CTC, // Wartezeit bei Collision
    SpeedCount, // geschwindigkeit der Platte
    rxCount, // Rechter Mind. Abstandt bevor die Platte Reagiert
    lxCount, // Linger Mind. Abstandt bevor die Platte Reagiert
    oCount,// Mind Abstandt zu oben
    UCount, // Mind Abstandt zu Unten
    wm, // Warte Modus(MoveToPlayer, ...)
    M//PlatenModus,Horzi, Vertie,....
    :Integer;
    FC,BC:TColor; // Farbeigenschaften(Hintergrund, Forderground)

    // Wird automaitsch geändert(vom Spiel)
    Speed, // Speed Zähler für geschwindigkeit der Platte
    TC, // Zähler für das Warten der Platte
    LxI, // ObjIndex von der Lingen Seiten
    RxI, // ObjIndex von der Lingen Seiten
    OI, // ObjIndex von Oben
    UI// ObjIndex von Unten
    :Integer;
    TimeGo:Boolean; // Soll die Platte fahren oder nicht
    Region: THandle;
  end;

  TWalls = record
    x,y,w,h,typ:Integer;
    bc, vc:TColor;
    frei:Boolean;
  end;
das problem ist jetzt: ich habe eine collisions funktion geschrieben die ist für array mit dem typ TWalls ausgelegt aber ich möchte nicht alles 1000 mal wiederholhen müssen, daher dachte ich das es evlt. möglich währe einer funktion einen array zuübergebne ohne ein type anzugeben. ich habe ja in beiden record die eigenschaften x,y,w,h evtl. könnte man diese auch zusammenfassen....

Basilikum 20. Feb 2005 09:50

Re: Array ohne Typ
 
Delphi-Quellcode:
type
  TBounds = record
    x,y,w,h : integer;
  end;

  TMoveWall = record
    bounds : TBounds; // <---------
    typ, // Objekt Typ(Wall, MovePlatteX,....)
    richtung, // ob nach linx oder rechts
    CTC, // Wartezeit bei Collision
    SpeedCount, // geschwindigkeit der Platte
    rxCount, // Rechter Mind. Abstandt bevor die Platte Reagiert
    lxCount, // Linger Mind. Abstandt bevor die Platte Reagiert
    oCount,// Mind Abstandt zu oben
    UCount, // Mind Abstandt zu Unten
    wm, // Warte Modus(MoveToPlayer, ...)
    M//PlatenModus,Horzi, Vertie,....
    :Integer;
    FC,BC:TColor; // Farbeigenschaften(Hintergrund, Forderground)

    // Wird automaitsch geändert(vom Spiel)
    Speed, // Speed Zähler für geschwindigkeit der Platte
    TC, // Zähler für das Warten der Platte
    LxI, // ObjIndex von der Lingen Seiten
    RxI, // ObjIndex von der Lingen Seiten
    OI, // ObjIndex von Oben
    UI// ObjIndex von Unten
    :Integer;
    TimeGo:Boolean; // Soll die Platte fahren oder nicht
    Region: THandle;
  end;

  TWalls = record
    bounds : TBounds; // <---------
    typ:Integer;
    bc, vc:TColor;
    frei:Boolean;
  end;
der Funktion dann einfach Bounds übergeben (Array Of TBounds)

sixarp 20. Feb 2005 10:17

Re: Array ohne Typ
 
Vielleicht mit
Delphi-Quellcode:
array of const
als Typendeklaration!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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