How do I translate the HEX encrypted text which I see in some UT messages?April 7, 2000This will translate the HEX encrypted text. It is a little wrapper around George Tasker class for automatic translation back and forth and placing the translated text to the Clipboard. You can explicitly pass your text as a parameter, or the program automatically picks the clipboard content.

How to add custom properties to SCATTER NAME-like object for use with GATHER NAME commandMay 29, 2002Instead of trying to add properties with some third-party tools like ADDPROP5.FLL to the native object created with SCATTER NAME command you may try to approach this problem from the other side.
You can replace the native SCATTER command with your own function MYSCATTER which may work on any area and create the object from one of standard VFP classes and use its native .AddProperty method.

How to ensure that changing the checkbox.Value type does not break your codeApril 5, 2000Checkboxes supports both Numeric and Logical data types.
When you check its value, do not just write
IF thisform.mycheckbox.Value = 1
or
IF thisform.mycheckbox.Value = .t.
Check it as
IF !EMPTY(thisform.mycheckbox.Value)
This way you don't care what the type of value really is and the code will not bomb if you occasionally changed the value type in the Property sheet.

How to find if the client's birthday is between the given datesJune 26, 2000Say, you have the client birth date and you want your program to tell you if the birthday is within the certain date range (even when the given range starts in one year and finishes in another).
SELECT * FROM CLIENTS ;
WHERE BETWEEN(GOMONTH(birth_date,(YEAR(start_date)- YEAR(birth_date))*12), start_date, end_date ) ;
OR BETWEEN(GOMONTH(birth_date,(YEAR(end_date)- YEAR(birth_date))*12), start_date, end_date)

What are the alternatives if I am getting Invalid Expression error for Dynamic... grid propertyJuly 17, 2000If you get an error "Expression is invalid. Use a valid expression for DYNAMIC... property"
you may try different type of addressing your PEMs:
For example, in Grid.Init() this syntax does not work
this.SETALL('DynamicBackColor', 'IIF(ASCAN(This.Parent.aRecNosSelected,RECNO()) > 0, RGB(255,0,0), RGB(255,255,255))' ,"Column")
and this works:
this.SETALL('DynamicBackColor', 'IIF(ASCAN(thisform.Grid1.aRecNosSelected,RECNO()) > 0, RGB(255,0,0), RGB(255,255,255))' ,"Column")