So, die Version mit dem Panel-BeispielCode lief also gar nicht! Wahrscheinlich lags daran, dass es ein TCustomControl ist...
Nun habe ich OKI´s Code mal implementiert und sehe zumindest transparenzen...Allerdings keine runden Ecken. Ich habe den Code so wie er war eingebunden und völlig sorgenfrei in OnPaint einfach aufgerufen...(war vielleicht etwas blauäugig
)
DoVisible habe ich nicht angerührt, aber in DoInvisible habe ich folgendes versucht...
Delphi-Quellcode:
procedure TmyPanel.DoInvisible;
begin
//gesamten Clientbereich erfassen
if FullRgn <> 0
then
DeleteObject(FullRgn);
FullRgn := CreateRectRgn(0, 0, Width, Height);
//'Mask' alles unsichtbar
CombineRgn( FullRgn, FullRgn, FullRgn, RGN_DIFF );
// alle sichtbaren Bereiche einblenden
PointRgn := CreateRectRgn( CornerWidth, CornerWidth, Width, Height);
// aus 0 wurde CornerWidth
CombineRgn( FullRgn, FullRgn, PointRgn, RGN_OR );
DeleteObject(Pointrgn);
// alles Kombiniert und fertig
SetWindowRgn(
Handle, FullRgn, TRUE);
end;
Also ich glaube, dass ich es nicht einfach beides im OnPaint aufrufen sollte, da es selbst schon zur DesignTime einiges an Ressourcen zu fressen scheint... => naja und so wie ich es jetzt versucht habe, funzt es auch noch nicht...ich bleibe am Ball...