>>>On the other hand, you should not use the BROWSE command for the end-user; a Grid is much more flexible.
>>
>>And actually browse is just an out-of-control grid. You can catch a reference to that grid object by using Browse Name oGrid, and then the oGrid has all the grid properties you want.
>
>I didn't know about that possiblity. I guess it would be more complicated than using a grid proper?
Depends... basically you have a reference to a grid, which has become visible just when you got that reference. Now you can set any of its properties, and call any of its code (though it's still a base class grid, so no custom code here, just basic behavior), you can even bindevent() to it, etc.
What I'd do with that would be to have the user try that grid, adjust it to their liking, and just before it gets closed, I'd generate a script to define it as a .prg based class, save that script for that user, and next time create a real grid from that script. Not really hard to do.