![]() |
Re: dynamische listen--> HILFE ! ! !
hm, also außer den bereits erwähnten Fehlern mit create & free seh ich jetzt auf Anhieb keine mehr.
Es stellt sich mir nun aber die Frage wozu das ganze?! entweder ich verwende ein dynamisches array oder ich lass es. (es sei den du hast vor noch eine "löschen"-Funktion einzubauen ... das würde dann in der Tat etwas mehr Sinn machen. |
Re: dynamische listen--> HILFE ! ! !
Zitat:
soweit ich es mitgekriegt habe ist d.free allgemein zur freigabe des speichers von der datenbasis und d.destroy ist ein prozeduren aufruf (frag mich aber nicht was es genau macht) |
Re: dynamische listen--> HILFE ! ! !
d.destroy führt soviel ich weiß fast das gleiche aus wie d.free, aber ich kann mich an den genauen Unterschied nicht mehr erinnern :oops: Ein Aufruf (destroy oder free) ist vollkommen genug, ich verwende normal immer free.
|
Re: dynamische listen--> HILFE ! ! !
wenn mich nicht alles täuscht ruft free destroy auf, oder umgekehrt ...
|
Re: dynamische listen--> HILFE ! ! !
ok, für Schulaufgaben hab ich immer Verständniss ... die sind selten sinnvoll ;)
|
Re: dynamische listen--> HILFE ! ! !
Zur Klärung: Free ruft Destroy auf, es knallt aber keine Zugriffsverletzung, wenn das Objekt schon nil ist.
Also nie direkt Destroy verwenden, sondern immer Free. Oder auch FreeAndNil(Object). |
Re: dynamische listen--> HILFE ! ! !
free ruft destroy auf, falls das object "created" wurde. falls nicht, passiert gar nichts. destroy gibt böse fehler aus, falls das object nicht erstellt wurde. daher faustregel:
immer free verwenden! woviel erstmal dazu |
Re: dynamische listen--> HILFE ! ! !
naja, da lag ich ja fast richtig ;)
ich hab im Übrigen auch die Fehler gefunden: 1. d.create und d.destroy löschen! 2. Wo immer bei dir folgendes auftaucht, wie folgt abändern:
Delphi-Quellcode:
mal neben bei, wäre eine Listbox oder ein memo nicht praktischer?
StringGrid1.RowCount := d.length; // <-- Du hast vergessen die ANzahl der Zeilen anzupassen ... deswegen wurde nix ausgegeben
FOR i:=1 TO d.length DO StringGrid1.Cells[0,i-1]:=d.at(i); // <-- zudem hast du die Zeilen und Spalten vertauscht, immer erst X, dann Y // außerdem fangt ein Stringgrid immer bei 0 an |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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