When you create
dynamic widgets (browser, fill-ins etc etc) you need to use "PERSISTENT RUN" in the triggers.
For instance:
Code:
CREATE FILL-IN myHandle
ASSIGN FRAME = <handle to frame>
etc
etc
TRIGGERS:
ON VALUE-CHANGED
PERSISTENT RUN <name of internal procedure> IN THIS-PROCEDURE (INPUT myHandle, INPUT "VALUE-CHANGED":U).
END TRIGGERS.
What will happen is, when the value-changed trigger fires, it will automatically run the internal procedure that is mentioned in the trigger. That internal procedure can then do what you normally would do in a static widget's trigger. You can pass parameters to the internal procedure (as in the little example above) so you could, for instance, write some general code that can handle events for multiple widgets. How you would do that ultimately depends on what you would like to (or need to) do. Also note the "IN THIS-PROCEDURE" bit. If you do not use that, Progress will look for an external procedure instead of an internal one. This means that you can have your trigger procedures either as internal or external procedures or you could have these stored in some persistent procedure that is already running (in which case you would have to use IN <handle of the persistent procedure>).
So, in your case, the triggers of your dynamic browse do not fire because they are not using the PERSISTEN RUN option on the trigger. Change that (and remove that very ugly "ON START-SEARCH ANYWHERE" thing) and your code should work fine.