Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Constructor stürzt mich ins Verderben (https://www.delphipraxis.net/129764-constructor-stuerzt-mich-ins-verderben.html)

messie 25. Feb 2009 09:22

Re: Constructor stürzt mich ins Verderben
 
Zitat:

Zitat von ZahnschleischbluterMurph
Ich deklariere die Tabus (Tabu : TTabu;), lege einige an (Tabu := TTabu.Create), weise ihnen Werte zu (Tabu.t := 7) und packe sie in die Liste (Tabu_liste.add(Tabu)).

Vielleicht gibt es ein Problem mit Tabu (lokal? Object Member?).
Ich mache das bei ObjectList etwas anders: Tabu_Liste.Add(TTabu.Create) und weise dann die Werte zu. Das hat schon oft funktioniert. Und Du sparst Dir die Übergabe der Referenz.

Grüße, Messie

ZahnschleischbluterMurph 25. Feb 2009 10:55

Re: Constructor stürzt mich ins Verderben
 
@messie: ich habe es mal für eine Liste so gemacht, wie Du es geschrieben hattest. Es zögert den Zeitpunkt des Abschmierens hinaus und der Fehler tritt bei einer anderen Liste auf :-)

Ich habe mich daher entschlossen, nur die eine Liste, die absolut notwendig ist, zu verwenden - die habe ich nach messies Kommentar auch schon angepasst. Den Rest ändere ich jetzt mit ein wenig Aufwand auf statische Arrays (hätte ich es von Anfang an so gemacht, wäre ich jetzt top ausgeschlafen und könnte dem Knecht beim Rechnen zuschauen). Das ist zwar Speicherverschwenung und gar nicht mehr auf der Höhe der Zeit, aber ich habe mal hochgerechnet, dass ich selbst für die schlimmsten zu berechnenden Instanzen nur rund 20 MB Speicher verbrate.

Fast MM schaue ich mir demnächst einmal an.


Und noch einmal vielen Dank für Euern Einsatz! Hat mich sehr gefreut.

jaenicke 25. Feb 2009 14:50

Re: Constructor stürzt mich ins Verderben
 
Zitat:

Zitat von ZahnschleischbluterMurph
@messie: ich habe es mal für eine Liste so gemacht, wie Du es geschrieben hattest. Es zögert den Zeitpunkt des Abschmierens hinaus und der Fehler tritt bei einer anderen Liste auf :-)

Das sieht dann schon sehr nach einem Speicherleck, überschriebenem Speicher oder ähnlichem aus...

Genau sowas kannst du mit FastMM finden. ;-)

Zitat:

Zitat von ZahnschleischbluterMurph
Den Rest ändere ich jetzt mit ein wenig Aufwand auf statische Arrays

Es gibt ja auch noch dynamische Arrays.
Bei denen solltest du dann zum Debuggen die Bereichsüberprüfung in den Compileroptionen aktivieren, um ggf. falsche Indexzugriffe zu finden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr.
Seite 2 von 2     12   

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