It's worth noting that the "." has a number of context sensitive meanings. With inline macro expansion it stops the expansion. For example,
lcField='MyField'
lcTable='MyTable'
control.value=&lcTable..&lcField.
You can construct some interest utilities that operate on tables and fields without any prior knowledge of the table name or field names.
Get the tables from a aDBOjbect(laTableArrary,'TABLES') and work on the fields from the AFields(laFieldsArray,laTableArray[lnI]) and use the above macro expansions to use/change/whatever the values like so:
control.value=&laTableArray[lnI]..&laFieldsArray[lnJ].
While alot of auguments can be made for and again P-Code languages, inline macros are sometime just to easy/neat to pass up.
(Just had this discussion with a JAVA head -- guess what/he didn't know the JAVA a P-Code language yaa for Pascal and virtual machines)
HTH
Gary
Gary
Helping Make Ideas Reality