Button mit Transparenz - Parent Hintergrund ermitteln?
28. Mär 2008, 12:46
Hallo!
Ich arbeite gerade an einer eigenen Button-Komponente. Das Aussehen des Buttons soll man dabei durch PNG-Bilder bestimmen können. Das hat den Vorteil, dass das Design sehr flexible ist und man auch Transparenz verwenden kann.
Ich habe hierfür eine neue Klasse von TCustomControl abgeleitet und male in der Paint-Funkion einfach das entsprechende PNG-Bild (Normal, Over, Down, Disabled) in die Canvas. Das klappt prima.
Beim Verschieben des Forms flackert der Button aber etwas. Ich möchte in Paint() das Ganze daher erst ein Bitmap Objekt malen (Erst das PNG-Bild, dann das Glyp, dann den Text) und erst wenn alles fertig ist das Ganze in die Canvas ausgeben. Das klappt auch, nur ist das Ganze dann nicht mehr Transparent, sonder hat einen weißen Hintergrund.
Ich denke das liegt daran, dass die Bitmap-Canvas weiß ist und ich somit auf einen weißen Hintergrund male... Um die Transparenz zu erhalten, müsste das Bitmap-Objekt also den gleichen Hintergrund haben, wie das Objekt, das den Button enthält. Aber wie bekomme ich diesen in Bitmap-Hintergrund? Es reicht nicht einfach die Hintergrundfarbe zu ermitteln, der Button könnte ja auch über einem Image liegen.
Hat also jemand eine Idee, wie ich die Transparenz hier hinbekomme?
Besten Dank
Ares
|