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 Fatale Grafikfehler (https://www.delphipraxis.net/60514-fatale-grafikfehler.html)

Flocke 8. Jan 2006 13:35

Re: Fatale Grafikfehler
 
Zu den Beispielen: du hast Recht, der dargestellte Code ist da sehr unterschiedlich. Manchmal wird die Region wieder freigegeben und manchmal nicht, stellenweise auch falsch (Beispiel).

Ein HRGN sollte aber IMHO definitiv wieder freigegeben werden. Da sowohl SelectClipRgn als auch SelectObject jeweils nur mit einer Kopie der Region arbeiten, kannst du sie danach direkt wieder mit DeleteObject löschen.

Die Handles eines Prozesses kannst du dir z.B. mit dem Process Explorer anzeigen lassen.

Gruber_Hans_12345 8. Jan 2006 14:07

Re: Fatale Grafikfehler
 
Zitat:

Zitat von Flocke
Zu den Beispielen: du hast Recht, der dargestellte Code ist da sehr unterschiedlich. Manchmal wird die Region wieder freigegeben und manchmal nicht, stellenweise auch falsch (Beispiel).

Ein HRGN sollte aber IMHO definitiv wieder freigegeben werden. Da sowohl SelectClipRgn als auch SelectObject jeweils nur mit einer Kopie der Region arbeiten, kannst du sie danach direkt wieder mit DeleteObject löschen.

Die Handles eines Prozesses kannst du dir z.B. mit dem Process Explorer anzeigen lassen.

So, sieht aus als ob es wirklich das war .... kenne zwar die SysInternals, aber die Ansicht im ProcessExplorer der GDIHandle ist schon ser hilfreich, un man sieht, wie innerhalb weniger Sekunden die Handles auf 2000 raufrauschen ....
hab jetzt mal das DeleteObject reingemacht und siehe da, die Handles bleiben brav auf 600 unten.

Also, wenn ich bedenke, das ich überall schon das DeleteObject hatte und auskommentiert war, da es ja auch Microsoft nicht hat ..... Arrgghhh

Bin schon gespannt, ob ich in den nächsten Tagen noch Meldungen bekomme ...

Noch mal besten Dank !

mindforce 8. Jan 2006 18:18

Re: Fatale Grafikfehler
 
Mit Windows XP kann man das aber besser. Drück mal Strg + Alt + Entf! Dann kannst du sogar die Priorität festlegen. Stelle sie mal bei deinem Programm auf Echtzeit. Wenn es dann geht dann musst du einen bestimmten Parameter für Windows XP legen. :?: Oder so... :!:

Probier es mal aus!

Gruss,

Mindforce

Gruber_Hans_12345 8. Jan 2006 19:10

Re: Fatale Grafikfehler
 
Zitat:

Zitat von mindforce
Mit Windows XP kann man das aber besser. Drück mal Strg + Alt + Entf! Dann kannst du sogar die Priorität festlegen. Stelle sie mal bei deinem Programm auf Echtzeit. Wenn es dann geht dann musst du einen bestimmten Parameter für Windows XP legen. :?: Oder so... :!:

Probier es mal aus!

Gruss,

Mindforce

Häh ?

Es geht hier um GDI-Handles, die erzeugt und nicht mehr freigegeben wurden.
Weisz nicht was das mit dem TaskManager zu tun haben soll.

mindforce 8. Jan 2006 19:41

Re: Fatale Grafikfehler
 
:!: Es kommt auch auf die kleinen Dinge an. Bei mir hat es mal gefunzt. Bloß das es an der GCI liegt kann ich nicht bezweifeln. :!:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 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