Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Rückwärts in Struktur navigieren (https://www.delphipraxis.net/128853-rueckwaerts-struktur-navigieren.html)

TM. 7. Feb 2009 16:25


Rückwärts in Struktur navigieren
 
Hallo,

ich habe mit mehreren record eine Struktur angelegt, in dieser ich von vorne nach hinten normal durchnavigieren kann
Bsp.
Delphi-Quellcode:
ProgTupel.Icon.Name := '...'
Gibt es die Möglichkeit, von hinten nach vorne zu wandern (Bsp. ich kenne die ID von ProgTupel.Im.ID und möchte auf das zugehörige "obere" Element ProgTupel.Im kommen)?

Danke.

Meflin 7. Feb 2009 16:27

Re: Rückwärts in Struktur navigieren
 
Nicht ohne deine records von "vorne nach hinten" durchzunavigieren ;)

Damit das geht müsstest du deine Daten in einer doppelt verketteten Liste organisieren.

sx2008 7. Feb 2009 16:41

Re: Rückwärts in Struktur navigieren
 
Würdest du deine Record in Klassen umwandeln, wäre das kein Problem.
Mit Records ist es dagegen unmöglich; bzw. der Aufwand ist viel höher als wenn du Klassen verwenden würdest.

himitsu 7. Feb 2009 19:01

Re: Rückwärts in Struktur navigieren
 
klar wäre das bei Klassen auch ein Problem.

Wenn die Klassen auch nur ihren Nachfolger kennen, dann ist es auch unmöglich innerhalb der Klasse den Vorgänger rauszubekommen.


egal ob Record oder Klasse, dir Liste muß dann doppelt verkettet sein und auch im "Root" muß das erste und letzte Element vermerkt sein


Delphi-Quellcode:
Type TElement = Class
    ...
    ...
    Prev, Next: TElement;
  End;

Var FirstElement, LastElement: TElement;
Delphi-Quellcode:
Type PElement = ^TElement;
  TElement = Record
    ...
    ...
    Prev, Next: PElement;
  End;

Var FirstElement, LastElement: PElement;
wenn jetzt die einzelnen elemente innerhalb der Liste richtig zugeordnet sind, dann kan man von LastElement über Prev rückwärts gehen,
oder von FirstElement aus über Next vorwärts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz