Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Paintbox in Paintbox

  Alt 5. Feb 2014, 08:41
Ich vermute ganz stark, dass das Problem hier eigentlich nur das Neuzeichnen ist, A rückt nicht wirklich höher in der Z-Order. Um das einigermaßen effizient zu lösen habe ich mal im Paint einer Komponente alle Komponenten des Parents durchsucht die höher in der Z-Order sind (weiter hinten in TWinControl.Components[]), geprüft ab sie meine Komponente verdecken würden (trivial über Top/Left/Bottom/Right), und wenn ja den Bereich der gefundenen Komponente vom Parent invalidiert (aber dran denken das eigene Paint während dessen über ein Flag o.ä. nicht erneut in diese Suche gehen zu lassen! Gibt schöne Endlosschleifen.)

Am Rande: TPaintbox ist nicht wirklich als Basis für eigene Komponenten gedacht. Für Dinge, denen man kein Windows-Handle verpassen muss, ist hier fast immer TGraphicControl eine gute Ausgangsklasse.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat