Aloah!
Ich stelle gerade eine Komponente um (Abkömmling von TGraphicControl), bei der diverse Beschriftungen von TextOut() auf TLables in der Komponente geändert werden. (Hintergrund ist, dass die Beschriftungen z.T. ausserhalb des Rects der Komponente liegen müssen, und wenn man das mittels TextOut() auf den Parent-Canvas malt, verhält sich das in der
IDE beim Verschieben usw. sehr hässlich.)
Das klappt auch wunderbar (TMS macht es z.B. genau so), jedoch gibt es ein Problem mit Labels, die Teilweise im Rect der Komponente liegen: Wenn man die Komponente mittels BringToFront oder im Editor nach vorne setzt, verschwinden diese Labels hinter ihr. Mein naiver Lösungsversuch: Im Paint() meiner Komponente einfach "Labels[i].BringToFront;". Das löst aber leider auch wiederum das Paint-Ereignis aus, und ist ein prima Weg sich die
IDE abzuschießen
. Und eigentlich ist mir das auch zu brutal. Ich würde daher ganz gerne eine Art OnZOrderChange() Event haben, jedoch finde ich hier irgendwie keine Stelle an der ich so etwas abgreifen könnte. Gibt es da überhaupt eine Chance?
"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)