>Thanks for the reply, Borislav.
>
>That's close to something that I was imagining too. I was thinking using a short menu to display the list of available fields with or without the listbox. I still need some way to validate their input when the user saves, because any thing could happen when they edit.
>Things that could go wrong:
>1. Missing >> or << which would have unpredictable results
>2. User accidentally and intentionally entered something between "<<>>"
>3. They used >> or << for what ever reason.
>4. Others?
>It would be great if I find a way to display the list of fields when after they typed "<<" as Intellisense does, that would make my users very happy, at least I think.
>
>But the question is: Is this the BEST approach?
I'm doing something similar, but with a slightly different approach. I have buttons (because the user likes buttons - I'd rather have a combo) which insert delimited text at the .selstart position in the editbox. But I'm not inserting anything merge-ready; I'm inserting English names of insertables, delimited by curly braces... so I'd have
Your invoice {invoice number} has been proccesed on {today's date}.
Then it's a simple matter to match the English names with actual expressions - they are somewhere in a table or a cursor. Once I replace the insertables' names with actual insertables, I save both texts into separate memos, so I always have the editable text, and the usable text.
You can imagine how pleased the users are that they don't have to read through any heavy syntax, specially when my insertables aren't just values, they're HTML links with a full line of tags.