AGB  ·  Datenschutz  ·  Impressum  







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

Fatale Grafikfehler

Ein Thema von Gruber_Hans_12345 · begonnen am 8. Jan 2006 · letzter Beitrag vom 8. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#1

Fatale Grafikfehler

  Alt 8. Jan 2006, 12:06
Hallo, gleich noch ne Frage

In meinem Programm verwende ich unter anderem ne Abgewandelte Version von TBXComponenten und auch sonst viel Grafik. Ab und zu passiert es, das ich dann so Fehler wie :
"Canvas does not allow drawing" oder einen totalen Systemabsturz mit einer Windows Fehlermeldung "Out of System Ressource" bekomme.

So, was bedeutet genau eine Meldung wie "Out of System Ressource" ?

Habe es immer mit memCheck und dann mit der Trial von AQTime getestet (hat zwar ein paar Memleeks in anderen Bereichen gefunden aber nur minimale).

Zusätzlich passiert es dann meist, das die Grafik total "komisch" aussieht, es werden Bereiche übereinader gezeichnet, wie wenn die Grafikkarte nen totalen Müll machen würde.

Da es schon auf 3 total verschiedenen Rechner passiert ist und es immer ne zeitlang dauert bis es passiert stehe ich mittlerweile vor einem Rätsel ....


Hat jemand Tipps, ob es Tools gibt mit denen man soetwas aufdecken kann, oder Tipps, wie man soetwas suchen kann ?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mindforce
(Gast)

n/a Beiträge
 
#2

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 12:21
Hi Gruber_Hans_12345,

soweit ich weiss kann Delphi je nach alter immer mehr KB´s schlucken aber da du Delphi 6 Enterprise besitzt kann das nicht an dem Delphi liegen. Sondern an deinen "Abgewandelte Version von TBXComponenten" liegt es. Wenn es eine Alte version ist dann kann es nätürlich zu Fehlern kommen. Deine "Menge an Grafik" muss die Anwendung ja nun selbst in sich Speichern. Deswegen musst du es so hinbiegen, dass deine Grafiken lokal von der Festplatte geladen werden. Mehr kann ich dir nun nicht verraten.

Ich hoffe ich konnte dir helfen.

Gruss,

Mindforce



--------

Zieht euch das rein.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 12:31
Hab mich etwas falsch ausgedrückt, mit Grafik meinte ich nicht Bilder sondern einen Haufen Grafikbefehle also Line, SelectClipRgn, CreateRectRgn, FillRect, TextOut usw.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 12:39
Das deutet darauf hin, dass irgendwelche Grafikhandles nicht wieder richtig freigegeben werden (HDC, HPEN, HBRUSH, etc.). Wenn die knapp werden, dann malt Windows plötzlich nur Teile der Fenster oder an den falschen Stellen.

Passiert es innerhalb der IDE oder wenn dein Programm alleine läuft?
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 12:47
Zitat von Flocke:
Das deutet darauf hin, dass irgendwelche Grafikhandles nicht wieder richtig freigegeben werden (HDC, HPEN, HBRUSH, etc.). Wenn die knapp werden, dann malt Windows plötzlich nur Teile der Fenster oder an den falschen Stellen.

Passiert es innerhalb der IDE oder wenn dein Programm alleine läuft?
Also meistens (bis jetzt immer) ausserhalb der IDE

Werd mir mal die Clipping Sachen noch mal genauest anschauen .... von denen hab ich ne Menge drinnen .... und noch mal ne Trial von dem AQTime raufladen, soetwas müsste die doch finden oder ?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
mindforce
(Gast)

n/a Beiträge
 
#6

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 12:50
Die IDE macht sonst keine Fehler. Das muss an "runtime" liegen!

Irgendetwas muss dein PC abbremsen das liegt nicht an Delphi. Denn ein paar striche und Kreise kann Delphi locker Darstellen!
Oder es kann daran liegen, dass du mehrer Befehle dafür nutzt und einige dich nur ausbremen.

Gruss,

Mindforce
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 13:29
Zitat von Gruber_Hans_12345:
Also meistens (bis jetzt immer) ausserhalb der IDE

Werd mir mal die Clipping Sachen noch mal genauest anschauen .... von denen hab ich ne Menge drinnen .... und noch mal ne Trial von dem AQTime raufladen, soetwas müsste die doch finden oder ?
Dann wird es an irgendeiner Laufzeitkomponente liegen. Die Handles sind halt auch unter Windows NT/2000/XP noch eine limitierte Ressource und selbst wenn an irgendeiner Stelle nur ein GetDC ohne dazugehöriges ReleaseDC gemacht wird (oder CreateRectRgn ohne DeleteObject etc....), dann ist ca. nach dem 20.000 Aufruf dieser Routine das Ende der Fahnenstange erreicht und Windows kann keine Grafikobjekte mehr erzeugen, weil keine Handles mehr frei sind.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 13:53
hmmm, ich habe jetzt mal genau geschaut, und verwende eigentlich oft
Delphi-Quellcode:
    myRgn := CreateRectRgn(PaintRect.Left, PaintRect.Top+Top, PaintRect.Right, PaintRect.Bottom+Top);
    SelectClipRgn(C.Handle, myRgn);
und das myRgn wird nie mit DeleteObject freigegeben ...

warum ? Da ich es bei keinem Beispiel in der MSDN gesehen habe ... also, muß mann ein CreateRectRgn freigeben oder nicht ?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 14:03
Du solltest die Region danach mit DeleteObject wieder freigeben. Auszug aus der MSDN-Library:
Zitat:
Only a copy of the selected region is used. The region itself can be selected for any number of other device contexts or it can be deleted.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Fatale Grafikfehler

  Alt 8. Jan 2006, 14:07
hmm, hast du dir mal die zwei Beispiele angeschaut ?

http://msdn.microsoft.com/library/de...ecurv_6oab.asp

und

http://msdn.microsoft.com/library/de...gions_0to4.asp


die geben zwar brav den DC frei aber keine Region ....


werds mal einbauen, überall die Region zu freen ....

Gibt es ein Tool, das die verfügbaren Handles anzeigt (irgendwie, damit ich sehn kanns ob es das ist) wie gesagt, bei mir tritt es nie auf, fast immer im produktiven betrieb ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:34 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