The best way is not to use the built in table lookup at all. As you have noticed, it does not trigger the change value (I have had it explained by Borland techs why this is so, still does not make sense to me), you cannot add/delete/modify records in the lookup table. and is difficult to change the GUI. It is a better plan to trap for the action event on the field object for the action.datalookup, disable the default, and open up your own popup form. This way you have complete control of the user action and the GUI.
If you have a multi-user app, make sure that you control the record locking when calling up the master table.
Hope this helps
James D. Howard