AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Object aus TreeView auslesen

Ein Thema von Chemiker · begonnen am 30. Mär 2007 · letzter Beitrag vom 30. Mär 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Object aus TreeView auslesen

  Alt 30. Mär 2007, 20:11
Hallo marabu,

haben Deinen Vorschlag aufgegriffen aber der Compiler meldet dann ‚Ungültiger Index’.


Delphi-Quellcode:
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
var z: integer;
begin
 // Speicher wieder aufräumen!
 For z:=TreeView1.Items.Count-1 downto 0 do
 begin
   dispose(TreeView1.Items[z].data);
 end;
end;

Wie kann man feststellen, ob eine Anwendung Speicherlöscher hinterlässt? Kannst Du mir da einen Tipp geben. Hilft da einem der Debugger weiter und sagt das Object xyz ist noch nicht freigeben.

Vielen Dank an alle, die mir schon weiter geholfen haben.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Object aus TreeView auslesen

  Alt 30. Mär 2007, 20:19
Hallo Chemiker,

in dem Ereignis darfst du nur den Speicher des Knoten freigeben, der dir als Parameter übergeben wird.

Speicherlöcher kannst du z.B. mit MemCheck ermitteln.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Object aus TreeView auslesen

  Alt 30. Mär 2007, 20:46
Hallo marabu,

danke für die schnelle Antwort.

Delphi-Quellcode:
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
var z: integer;
begin
 // Speicher wieder aufräumen!
 Node.delete;

end;
Werde mich mal mit dem Programm 'MemCheck' beschäftigen.

Zum Abschluss noch eine Frage. Wenn die Anwendung beendet wird, wird dann der Speicher auch freigegeben der innerhalb der Anwendung nicht ordnungsgemäß freigegeben worden ist?


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Object aus TreeView auslesen

  Alt 30. Mär 2007, 21:13
In der Regel ja. Das ist wie beim Fliegen: Runter kommen sie alle. Was mich an eine Anekdote vom Frankfurter Flughafen erinnert:

Auf der Besucherterasse des Flughafens hat mal ein älteres Fräulein den Erklärungen zur Problematik von Warteschleifen gelauscht und nach heftigem Sinnieren aufgeregt gefragt, was passiere, wenn einem Flieger beim Warten der Treibstoff ausgehe. Der PR-Mann hat kurz nachgedacht und ihr dann bestätigt, dass ein solcher Fall sehr tragisch sei, weil Crew und Passagiere dann mitunter mehrere Tage in der Warteschleife feststecken, bis man sie retten könne.

Übrigens: Ich hatte mit etwas ähnlichem wie TObject(Node.Data).Free gerechnet, nicht mit Node.Delete! Gelöscht wird der Knoten ja in diesem Augenblick gerade, sonst würde das Ereignis nicht feuern. Und der Speicherplatz des mit Create erzeugten Object, welches in Node.Data abgelegt wurde, wird durch Node.Delete nicht wieder freigegeben. Gibt es da keine Zugriffsfehler?

Gute Nacht
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Object aus TreeView auslesen

  Alt 30. Mär 2007, 22:36
Hallo marabu,

nein der Compiler meckert nicht. Wenn der Knoten gelöscht ist, ist doch auch der Zeiger von Data gelöscht oder?

Ich muss mir morgen das ganze noch einmal genau ansehen.



Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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