![]() |
Fatale Grafikfehler
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 ? |
Re: Fatale Grafikfehler
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 ![]() |
Re: Fatale Grafikfehler
Hab mich etwas falsch ausgedrückt, mit Grafik meinte ich nicht Bilder sondern einen Haufen Grafikbefehle also Line, SelectClipRgn, CreateRectRgn, FillRect, TextOut usw.
|
Re: Fatale Grafikfehler
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? |
Re: Fatale Grafikfehler
Zitat:
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 ? |
Re: Fatale Grafikfehler
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 |
Re: Fatale Grafikfehler
Zitat:
|
Re: Fatale Grafikfehler
hmmm, ich habe jetzt mal genau geschaut, und verwende eigentlich oft
Delphi-Quellcode:
und das myRgn wird nie mit DeleteObject freigegeben ...
myRgn := CreateRectRgn(PaintRect.Left, PaintRect.Top+Top, PaintRect.Right, PaintRect.Bottom+Top);
SelectClipRgn(C.Handle, myRgn); warum ? Da ich es bei keinem Beispiel in der MSDN gesehen habe ... also, muß mann ein CreateRectRgn freigeben oder nicht ? |
Re: Fatale Grafikfehler
Du solltest die Region danach mit DeleteObject wieder freigeben. Auszug aus der MSDN-Library:
Zitat:
|
Re: Fatale Grafikfehler
hmm, hast du dir mal die zwei Beispiele angeschaut ?
![]() und ![]() 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 ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 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