![]() |
Unedlich viele Pointer
Hallo
habe da ein kompliertes Problem: Ich lade aus einer Datei bestimmte Daten und erstell anhand von diesen Daten einen Treeview. Da es aber auch noch Daten gibt, die von meinem Programm gebraucht werden, die aber nicht in der caption der TreeNode stehen, habe ich mit
Delphi-Quellcode:
Pointer erstellt, die ich ja mit der "Data" Eigentschaft an eine TreeNode binden kann. So weit so gut, jetzt habe ich aber ein Problem:
type TFunktion=record
funktionnr:string; funktionname:string; end; PFunktion=^TFunktion; ... an eine Treenode (die auf der tiefsten Ebene) sollen jetzt Daten gebunden werden (Belege). Da ich aber im voraus nicht weiß, wieviele Belege vorhanden sind, kann ich dass nicht wie oben lösen. Folgende Datentyp habe ich schon geschrieben:
Delphi-Quellcode:
Nochmal: von diesem Typ sollen beliebig viele an eine TreeNode gebunden werden.type TBeleg=record belegdatum: TDateTime; betrag: double; spendenbescheinigungsnr: string; ausgestelltam: TDateTime; sachlicherichtigkeit:string; rechnericherichtigkeit:string; einnahme:boolean; end; Wie könnte ich das lösen?` Danke TO |
Mach Dir doch noch einen Beleg-Array
Delphi-Quellcode:
...:cat:...
type
TBeleg = record belegdatum: TDateTime; betrag: double; spendenbescheinigungsnr: string; ausgestelltam: TDateTime; sachlicherichtigkeit:string; rechnericherichtigkeit:string; einnahme:boolean; end; TBelegArray = array of TBeleg; PBelegArray = ^TBelegArray; |
Re: Unedlich viele Pointer
Hai
Zitat:
Delphi-Quellcode:
Bei dem letzten Beleg setzt du next_beleg aufl NIL.type PBeleg = ^TBeleg; TBeleg=record belegdatum: TDateTime; betrag: double; spendenbescheinigungsnr: string; ausgestelltam: TDateTime; sachlicherichtigkeit:string; rechnericherichtigkeit:string; einnahme:boolean; next_beleg : PBeleg //Pointer auf den Nächsten Beleg end; Wenn Du nun noch einen Beleg anhängen möchtest, musst Du die Kette so lange durchlaufen bis du zu dem Record mit next_beleg = NIL kommst. Dann next_beleg auf den Pointer des neuen Records setzen und nex_beleg des neuen auf NIL. Ich hoffe ich habe es einigermaßen verständlich beschrieben. |
@sharky: So könnte es gehen
@sakura: So geht es vermutlich nicht, weil ich (habe ich mal gehört) keine Pointer auf Dynamische Tabellen machen kann |
stimmt denn das, dass ein Pointer auf ein dynamisches Array nicht geht?
|
Wenn oben nicht geht, keine Zeit zum Testen :D, dann aber so
Delphi-Quellcode:
type
TBeleg = record belegdatum: TDateTime; betrag: double; spendenbescheinigungsnr: string; ausgestelltam: TDateTime; sachlicherichtigkeit:string; rechnericherichtigkeit:string; einnahme:boolean; end; TBelegArray = record BelegArray: array of TBeleg; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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