I think that the background color of SAYs are not defaulting properly. This is from TSay:Redefine():
- Code: Select all Expand view
DEFAULT oWnd := GetWndDefault(),;
nClrText := oWnd:nClrText,;
nClrBack := GetSysColor( COLOR_BTNFACE ),;
nClrText is fine, but nClrBack is defaulting to the default dialog color. This works as long as you are putting the SAY on dialog with the default color, but not if the dialog has a different color than the default. I suggest that it should be:
nClrBack := oWnd:nClrBack
The TSay:New() method is different still.
- Code: Select all Expand view
nClrBack := iif(Upper( oWnd:Classname() ) != "TWINDOW",;
GetSysColor( COLOR_BTNFACE ),;
oWnd:nClrPane),;
This defaults to the background color of it's parent but only if the parent is a TWindow. If not putting the SAY on a Window it defaults to the default dialog color which has the same problem as above. So I suggest always defaulting the background color of the SAY to it's parent's background color.
nClrBack := oWnd:nClrBack
However, since these days we are doing more with fancy graphics like putting bitmaps on windows and dialogs, etc., so it seems it would be better if SAYs always defaulted to transparent so they would always show the background of the parent even if it was a bitmap. This behavior would make the default color moot. Perhaps there is some reason this can't or shouldn't be done?
Regards,
James