Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TTreeNode um eine weitere Variable erweitern (https://www.delphipraxis.net/50166-ttreenode-um-eine-weitere-variable-erweitern.html)

Nogge 28. Jul 2005 17:28

Re: TTreeNode um eine weitere Variable erweitern
 
Es war ein Integer-Wert, ja. Dann ist das natürlich logisch^^
Ich konnte allerdings auch negative Werte einsetzen und auslesen, dabei dachte ich, dass ein Pointer auf eine Speicheradresse zeigt, die bei 0 startet *verwirrt*. So würde der Zeiger ja ins nichts bzw. negativen nicht vorhandenen Bereich zeigen. Wird dabei kein Fehler ausgelöst?

mschaefer 10. Sep 2005 15:20

Re: TTreeNode um eine weitere Variable erweitern
 
Moin, moin,

ja auch wenn es schon etwas her ist: Der Pointer hat ein anders Datenformat und das negaiv Bit wird als normales Zahlenbit genommen, was den höchsten positiv darstellbaren Wert erhöht. Also kein negaitver Speicher oder Paralleluniversum :-)

Grüße // Martin

Nogge 10. Sep 2005 15:40

Re: TTreeNode um eine weitere Variable erweitern
 
Ah, ok...Danke dir!

CLRS530 31. Okt 2005 20:28

Re: TTreeNode um eine weitere Variable erweitern
 
So ich habe das hier einmal per Suche gefunden und es ist ja sogar noch fast Aktuell.

Ich möchte auch die Property Data benutzen und das sogar nur zum Speichern eines Integer Wertes.
Nun habe ich das mit den Pointern bei Delphi alles noch nicht so hunertpro verstanden, dazu kommt das dauernde hin und her zwischen mehreren Sprachen.

Nun gut, momentan habe ich es so:

Delphi-Quellcode:
  var
    test: integer;
  ShellTreeView1.Items.Item[3].Data:= Pointer(test);
  ShellTreeView1.Items.Item[3].Data:= nil;
Soll einmal nur ein kleiner Auszug sein.
Ohne das am Ende auf nil zu setzen, scheint das nicht zu funktionieren, denn dann bekomme ich Fehler beim Beenden des Programms.

jemand Ideen, wie ich es noch anders machen kann/ wie es ist, wenn test einen anderen Wert annehmen/ gelöscht werden würde.

Gesagt sei noch, das ich in dem Treeview Dateien mit evntl einer Ordnerstruktur darstellen möchte.
Diese werden dann durch eine id festgelegt, wodurch ich sie in einer Datei finden kann.

Mir ist sehr wohl klar, das ich durch eine Ordnerstruktur die Dateien anders finden könnte, aber stellt euch Delphi oder irgendeinen Editor vor, der Listet auch nur alle Dateien auf.
Ich wäre dennoch für alles andere offen *gg*

Nogge 31. Okt 2005 20:47

Re: TTreeNode um eine weitere Variable erweitern
 
Es gibt eine aufwendige, dafür aber perfekte Lösung, um allgemein Werte in Data zu speichern:
Delphi-Quellcode:
PIntRec = ^TIntRec;
  TIntRec = record
    Value : Integer;
  end;
  [...]
  var
  DataPointer:PIntRec;
  [...]
  { -- Data mit Daten füllen -- }
  Node:=TV.Items.AddChild(Parent,String);
    New(DataPointer);
    DataPointer^.Value := Value; // z.B. dein Integer-Wert
  Node.Data := DataPointer;
  [...]
  { -- TreeNodes freigeben (z.B. bei OnClose -- }
  for i:=TV.Items.Count-1 downto 0 do
  begin
    Dispose(PIntRec(TV.Items.Item[i].Data));
    TV.Items.Item[i].Data:=nil;      // wird nicht benötigt (nach sakura)
    end;
  end;
Was ist denn so schlimm daran, beim Beenden des Programms Data auf nil zu setzen?

CLRS530 31. Okt 2005 21:06

Re: TTreeNode um eine weitere Variable erweitern
 
Naja das ist ein sehr spezialler Fall und ein Record erstellen wird wohl nicht nötig sein.

generell hast du recht, das auf nil zu setzen ist wohl kein Problem, ich muss dies halt bei 20 werten oder so machen.

Es geht mir auch mehr um eine gute und sichere Art dies zu machen.
Also die zuweisung, bzw dann das lesen


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.
Seite 4 von 4   « Erste     234   

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