in \SOURCE\SYS\xbparts.prg findet man den Source zu
Code: Alles auswählen
METHOD XbpIcon:Draw( oPS, aTargetRect, nState )
Code: Alles auswählen
oBmpTmp := XbpBitmap():New():Create( oPS )
oPSTmp := XbpPresSpace():New():Create()
oBmpTmp:PresSpace( oPSTmp )
oBmpTmp:Make( ::XSize, ::YSize )
oBmpTmp:TransparentClr := oBmpTmp:GetDefaultBGColor()
// Icon
::Draw( oPSTmp, {0,0}, nState )
oPSTmp:Destroy()
// Bitmap
lReturn := oBmpTmp:Draw( oPS, aTargetRect,,, GRA_BLT_BBO_IGNORE )
oBmpTmp:Destroy()
RETURN lReturn
dann wird das Icon "in" das Bitmap gemalt ?
für die endgültige Anzeige wird das Bitmap "in" das oPS gemalt.
warum der ganze Aufstand
ist das ein Workaround um bei Icons Transparency zu simulieren