Add and delete columns in a dbgrid

I have a database with a mastertable and several detail tables.

Now, I want the user to view different fields in a dbgrid after having made
selection. (Address fields, telephone fields and so on) All lookups are

I have successfully created the addresslookup. But I need to know
how to add and delete columns in the grid at run time.

There are some tips out there telling me I should make use of
table.fields(name).visible. Is there a better way? I have, as mentioned
several tables.

May be I should consider Sql, however if possible I would prefer not to.

Thanks in advance.