Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fehlermeldung / Leinwand Bild Zeichnen (https://www.delphipraxis.net/68478-fehlermeldung-leinwand-bild-zeichnen.html)

renekr 30. Apr 2006 11:02


Fehlermeldung / Leinwand Bild Zeichnen
 
Hi,

Kann mir jemand erklären was die Fehlermeldung Leinwand Bild erlaubt kein Zeichnen zu bedeuten hat?

Diese kommt ab und zu in meinem Tool an unterschiedlichen Stellen.

Manuell Zeichne ich nix nur Images .

Danke.

mkinzler 30. Apr 2006 11:07

Re: Fehlermeldung
 
Bei welcher Komponente kommt der Fehler? Weißt darauf hin das versuchst wird auf einem nichtbeschreibbaren canvas Grfikbefehle abzusetzen.

BTW. der Übersetzter braucht mal nen Deutschkurs ;-)

DBR 30. Apr 2006 12:28

Re: Fehlermeldung
 
Die Meldung kommt meistens, wenn die Komponente noch nicht vollständig erstellt ist. Verlagere das, was da gemacht werden soll, in die Procedure PAINT.

Gruß DBR

fkerber 30. Apr 2006 13:04

Re: Fehlermeldung
 
Hi!

Um was genau geht es denn?
Ohne Code werden wir dir wenig helfen können...


Ciao Frederic

P.S.: Ein schöner Thread-Titel wär prima...

renekr 30. Apr 2006 14:37

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Hi,
also der Fehler kommt nicht nur auf einer Form .

Die Meldung kommt nicht beim Start oder Create sondern während der Bedienung.
Wenn man iergendwie über ein Element geht oder so.

An Unterschiedlichen Stellen.

Habe hauptsaächlich die Standard Kompos ( PageControls ) und JVCL ( JVNavigation Page),Inspector Bar.

wie kann ich das ein bisschen eingrenzen von der Fehlersuche.
Ich habe noch keine Lösung gefunden um es genau nachzuvollziehen und manuell auslösen können.


Danke

Bernhard Geyer 30. Apr 2006 14:41

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Debug-DCU's aktivieren und Projekt komplett neu kompilieren und auch in der IDE das Anhalten bei Exceptions aktivieren und Programm von IDE aus starten. Falls in IDE nicht auftritt das Debug-Interface der Jedi einbauen welche mit Debug-Infos kompletten aufrufstack für Exception liefert.

renekr 5. Mai 2006 17:00

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Hi,
also im Debugger tritt es nicht auf wenn ich es will !!! :wall: :wall:

Kannst du mir mal zu den Jedis einige Infos geben?

Ich habe die Kompo nicht gefunden!

Danke.

Dax 5. Mai 2006 17:03

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Benutzt du in deinem Programm Threads, die auf Controls der GUI zugreifen? Diese Fehlermeldung kommt ganz gern mal bei solchen Sachen.

renekr 5. Mai 2006 17:19

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Hi,
also ich habe einen Thread drin der eine Status Bar von rechts nach links zeichnet wenn ich zb eine Query Abfrage mache über mehr als 100 000 Datensätze,dann bleibt das Programm shcon mal länger "Hängen".

Aber an diesen Stellen wo der Fehler auftritt mache ich das nicht.
Und vorher schließe ich die Form und den Thread korrekt.

Gibts sonst iergendeine Anzeige,Statusbar oder Progress Bar die sich bewegt wenn man eine solche Abfrage macht?

mfg

SirThornberry 5. Mai 2006 17:53

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
wenn du aus Thread auf grafische Elemente zugreifst passieren die tollsten Sachen. Teilweise treten die Effekte erst nach 2 Stunden auf (ihr ahnt gar nicht wie schön debuggen bei solchen Fehlern ist :roll: ). Wenn du von Threads aus auf grafische Elemente zugreifst muss der Thread immer Syncron mit dem Hauptthread laufen. Ein Thread ist also nicht für Grafische Ausgaben gedacht sondern eher für Berechnungen. Es spricht aber nix dagegen vom Thread aus einfach ein Flag zu setzen das die hauptanwendung demnächst mal was neu malen soll. Es darf eben nur nicht aus dem Thread heraus gemalt werden.

renekr 5. Mai 2006 21:13

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Hi,
Danke werd i mir merken.

Werde mal den thread anschauen und ev. mal rausnehmen ob es dann immer noch kommt!

Aber gibt es eine andere saubere Lösung um eine anzeige zu machen während das Programm "Hängt" und es nicht selber anzeigen kann?

mfg

renekr 7. Jul 2006 11:00

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Hallo,
Ich habe das Thema immer noch ab und zu.
Habe nun einiges an Code entfernt was darauf hingedeutet haben könnte.

Also ich habe den Fehler eigentlich nur wenn ich über die Komponente von TMS Software fahre mit der Maus.:
TMS Kompo

Dann kommt Bild / Leinwand Bild konnte nciht gezeichnet werden und auch Parameter 87 falscher Wert.

Ich habe da nix gezeichnet ,nur der Komponente eine Image List mit vielen Pictures zugewiessen.
Könnte es ev. daher kommen?
Das es an der Liste liegt?

Danke.

Bitworm 22. Jul 2006 14:07

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Zitat:

Zitat von renekr
Hallo,
Ich habe das Thema immer noch ab und zu.
Habe nun einiges an Code entfernt was darauf hingedeutet haben könnte.

Also ich habe den Fehler eigentlich nur wenn ich über die Komponente von TMS Software fahre mit der Maus.:
TMS Kompo

Dann kommt Bild / Leinwand Bild konnte nciht gezeichnet werden und auch Parameter 87 falscher Wert.

Ich habe da nix gezeichnet ,nur der Komponente eine Image List mit vielen Pictures zugewiessen.
Könnte es ev. daher kommen?
Das es an der Liste liegt?

Danke.

Ich hatte genau die gleichen Probleme. Da ich mehr damit beschäftigt war, Delphi neu zu starten,
habe ich die in meiner Applikation von TMS verwendeten Komponenten durch andere ausgetauscht und
anschließend sämtliche TMS-Komponenten deinstalliert. Damit war erst einmal Ruhe. Im Supportforum
des Herstellers gab es bereits mehrfach Anfragen zu dem Thema, die aber abgetan wurden mit "sind
bei uns nicht nachstellbar". Bei mir trat das Problem vor allem bei den Komponenten auf, die das
neue Vista-Thema darstellen. Vielleicht ist das Problem mit einem der kommenden Updates von TMS
behoben, solange wird das nur noch auf meinen Testrechner installiert.

stoxx 22. Jul 2006 17:21

Re: Fehlermeldung / Leinwand Bild Zeichnen
 
Zitat:

Kann mir jemand erklären was die Fehlermeldung Leinwand Bild erlaubt kein Zeichnen zu bedeuten hat?
ich hatte den Fehler (war sehr sehr sehr sehr schwer zu finden) als ich mit Windows Regionen (native API) gearbeitet habe und diese vergessen habe freizugeben. So nach 2 Stunden Programmlauf kamen immer diese Fehlermeldungen.
Ich habe dann nach und nach den Code reduziert um Features und langsem eingegrenzt.

Zum Beispiel der API befehl:

Delphi-Quellcode:
var
  Region : HRGN; // definiert in Windows.pas
begin

Region := CreatePolygonRgn(....);
Region muss man nach Verwendung mit DeleteObject(Region) unbedingt wieder freigeben.
Die Fehlermeldung ist also ein Ausdruck, dass irgendwelche internen Windows Recourcen erschöft sind und resultieren in dem ungenauen Verständnis von Programmieren in der Windows API ( wie mir ;-) )


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