Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#27

Re: Problem mit einer Stringlist und Pointern

  Alt 12. Jan 2007, 09:10
Schon wieder diese Pointer...

Aaaaalso

Ich habe die Einträge in meiner Liste jetzt so arrangiert:
Delphi-Quellcode:
  TBauteil = Record
    ID: string; // Der einzigartige name jedes Bauteils
    Typ: TBauteilTyp; // Der Typ des Bauteils (im moment noch unwichtig)
    Ebene: integer; // Die Ebene des Bauteils, also Root Ebene = 0 Nachfolger Ebene = 1 usw
    Parent,Next: Array of PBauteil // Die direkten nachfolgenden und vorherigen Elemente
  end;
Da ich mit meiner Liste einen Stromkreis darstellen möchte, habe ich mir Überlegt, dass sich Parallel und Reihenschaltungen ja auch verschachteln können z.B:
Code:

[root] ---> [root_child1] ---> [root_child1_child1] ---> [root_child1_child1_child1]
                          \--> [root_child1_child2] --/
In diesem Fall wird aber durchs rekursive Auflisten (logischerweise, ergeht ja alle einträge durch, folgendes Angezeigt
Zitat von Listbox:
root_child1_child1_child1
root_child1_child1
root_child1_child1_child1
root_child1_child2
root_child1
root
Ist ja auch klar, denn durch die Rekursive Suche wird root_child1_child1_child1 zweimal gefunden

Wie kann ich das umgehen?
Die Zweite Sache ist, wenn ich den Speicherplatz beim beenden rekursiv freigebe, dann kommts auch zu einem Problem, denn:
Code:
[s][root] ---> [root_child1] ---> [root_child1_child1] ---> [root_child1_child1_child1][/s]
[s]                         \--> [root_child1_child2] --/[/s]

[s][root] ---> [root_child1] ---> [root_child1_child1] ---> nil[/s]
[s]                         \--> [root_child1_child2] [color=#ff0000][b]--/[/b][/color] // der Zeigt dahin, wo nichts ist und es kracht, wenn er versucht auf dieses Element zuzugreifen, er weiß ja nicht, das es das Element nicht mehr gibt [/s]
Wie kann ich das verhindern?

Und nochwas? Wäre es sinnvoller, statt Parent: Array of string; lieber Parent: Array of PBauteil; zu nehmen? EDIT: hat sich erldedigt, nur noch das Erste

Vielen Dank schonmal für die Hilfe!

Richard
Richard Mahr
  Mit Zitat antworten Zitat