1) If the dialog is set to transparent, all controls, including says, are transparent. This is how we have always been coding.
2) Keeping backward compatibility aside, not all controls can be transparent by default. While it is nice to have say, etc transparent by default, gets, browses, graphs and many more should not be transparent by default. That means FWH should selectively make some controls transparent by default and some non-transparent. That in turn means:
(a) Programmer has to remember, or keep referring to documentation, which control is transparent by default and which is not
(b) FWH should add one more clause "NOTRANSPARENT", for those cases where we want a default transparent control to be non-transparent. There are many cases where we need to use a SAY in non-transparent mode too.
Present system is uniform for all controls and there is no confusion to the programmer.
3) Any change now in the default behavior effects backward compatibility.
4) For every control we need to anyway type several clauses and I do not find any reason to get tired to type one more word TRANSPARENT at the end.
5) Another way is to provide a class variable for transparency, which a programmer can set at the beginning.
6) Meanwhile this can be a possible solution to the original posting of this thread:
Keep this derived class in the main module
- Code: Select all Expand view
CLASS TSay2 FROM TSay
DATA lTransparent INIT .t.
ENDCLASS
and then have one common include file that will be included in every program in the project
eg: mycommon.ch
- Code: Select all Expand view
#xtranslate TSay() => TSay2()