AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Speicher und Handle

Ein Thema von s.h.a.r.k · begonnen am 14. Mär 2008 · letzter Beitrag vom 8. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
Nuclear-Ping
(Gast)

n/a Beiträge
 
#11

Re: Problem mit Speicher und Handle

  Alt 14. Mär 2008, 14:18
Es empfiehlt sich der Einsatz eines Leak-Reporters, wie FastMM oder MemCheck mit den entsprechenden Einstellungen, der dir nach Beenden deiner Anwendung die meisten Leaks zeigt.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Problem mit Speicher und Handle

  Alt 4. Mär 2010, 17:39
Hallo Armin,

danke für Deinen Hinweis! Hat mir gerade sehr gehofen.
Von mir noch eine Anmerkung:

Ich habe Datenobjekte erstellt, die grötenteils aus mehreren Panels und Labels bestehen und Datenbankinhalte darstellen.
Darüber hinaus gibt es Listenobjekte (von der Scrollbox abgeleitet), die Mengen von Datenkomponenten anzeigen und in Spalten und/oder Zeilen anordnen.
Die Listenobjekte können auch ihre eigene Größe anpassen, um den Inhalt möglichst komplett anzuzeigen.
Jeder Eintrag in einer Listenkomponente kann selbst wieder Datenmengen anzeigen und seine Größe selbst danach ausrichten.
(Im Bild werden die Runden untereinander angeordnet und beinhalten wiederum Spiele, die dann in Spalten und notfalls in mehreren Zeilen angeordnet werden.)

Da sind natürlich jede Menge Objekte verbraten und die Ausrichtung aller Datenkomponenten dauert etwas.
Nun hatte ich immer mal sporadisch den o.g. Handle-Fehler.

Dank Deinem Hinweis bin ich dem etwas näher auf die Schliche gekommen:
Wenn der Aufbau der Runden (im Bild) fertig war (Benutzerobjekte=2500), konnte ich "vorsichtig" durch die Runden scrollen. Das heisst, "Stück für Stück" - ein Stückchen scrollen, dann alles schön fertig zeichnen lassen, wieder ein Stückchen scrollen... Soweit kein Problem.
Wenn ich aber die Scrollbar voll "durchgezogen" habe, wurde alles normal gezeichnet, die Benutzerobjekte stiegen danach aber kontinuierlich immer weiter bis 10.000 und dann kam der Fehler.

Ich habe mir jetzt so beholfen, dass ich in der Listenkomponente (wenn eine verschachtelte Höhenanpassung erfolgen muss) jeden neuen Eintrag sofort zeichnen lasse.
Delphi-Quellcode:
if (ItemCreateFlag) and (ItemsAutoHeight or ItemsAutoWidth) then
begin
  ScrollInView(dcPanel);
  Application.ProcessMessages; // nur dieses allein half nicht
end;
Das hat zwar zur Folge, dass der Aufbau einer neuen Listenkomponente (bzw. neuen Inhalten) etwas unruhiger ist, aber der Fehler wird so vermieden.
Scheinbar verzettelt sich Windows, wenn wenn es später Komponenten darstellen soll, mit denen es sich noch nicht richtig auskennt

Zwei Fragen:
1) Kann man die Anzahl der verbrauchten Benutzerobjekte im eigenen Programm ermitteln?
2) Hat jemand eine Idee für eine bessere Alternative zu dem ScrollInView?


Stahli
Miniaturansicht angehängter Grafiken
benutzerobjekte_162.png  
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#13

Re: Problem mit Speicher und Handle

  Alt 8. Mär 2010, 16:29
Grüß dich Pro Frage einen Thread. Deine Fragen haben ja nicht direkt etwas mit meiner zu tun. Hätte ich nicht durch Zufall den Thread geöffnet hätte ich deine Frage nie gefunden
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  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 19:22 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