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 Repaint nach Verdecken (https://www.delphipraxis.net/69695-repaint-nach-verdecken.html)

TheAn00bis 18. Mai 2006 17:27


Repaint nach Verdecken
 
Hey,

ich programmiere eine OpenGl-verwendende Anwendung, in welcher ich den device context eines TPanels zum Zeichnen benutze.
Immer wenn die Anwendung von einer anderen überlagert wurde, ist das Gezeichnete an der Stelle gelöscht. Ich verwende zum
Erneuern des Bildes nicht das OnIdle-Event, da dies für diese Anwedung, in welcher das Gezeichnete nicht oft erneuert werden
muss overkill wäre.

In welchem Event muss ich neuzeichnen, um das "Geschmiere" zu verhindern?

Typh00n 18. Mai 2006 17:58

Re: Repaint nach Verdecken
 
Hi,

versuch mal
Delphi-Quellcode:
onPaint
Ich meine hier mal gelesen zu haben das onPaint nach dem verdecken aufgerufen wird (sicher bin ich mir aber nicht).


mfg Typh00n

TheAn00bis 18. Mai 2006 18:30

Re: Repaint nach Verdecken
 
Danke; so lange ich Dropshadows ausgeschaltet habe funktioniert das.

Nur wenn ich dann wieder in das Programm gehe; das Fenster also halb verdeckt war und ich es anklicke, dann habe ich wieder einen nicht erneuerten Teil. Auch das OnActivate scheint dann nicht neu zu zeichnen; gibts da noch ein Event für?

TheAn00bis 19. Mai 2006 16:43

Re: Repaint nach Verdecken
 
Ich denke es ist noch dasselbe Problem, deswegen kein neuer Thread:

Obwohl ich am Ende des OnCreates der Form all mein OpenGL neu zeichnen lasse, ist
nichts davon zu sehen, d.h. es sieht aus, als hätte zuvor ein anderes Fenster drüber
gelegen und wäre hinterher nicht neu gezeichnet worden.
Dabei ist es beim Starten des Programms ganz kurz zu erkennen, wird dann aber wieder
"übermalt".
Woran liegt das? Welches Event soll ich denn sonst nehmen, wenn ich das OnCreate nicht
nehmen kann?

Phistev 19. Mai 2006 16:54

Re: Repaint nach Verdecken
 
OnShow sollte das Richtige sein

TheAn00bis 19. Mai 2006 17:03

Re: Repaint nach Verdecken
 
Leider nicht.
Die Zeichenfläche ist immer noch grau.

Edit: Hier stand Unsinn...
Edit2: Mich wundert das ein wenig, da das OnShow direkt nach Erstellen aufgerufen wird.
An der Zeichenroutine kann es aber nicht liegen. Denn das OpenGL wird korrekt gezeichnet, wenn ich zum Beispiel nach Ausführen des Programmes auf einen Button klicke, der die Zeichenroutine ausführt.


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