Well, report wrapping also does not wrap the data, only the output.
Within forms the objects doing wrapping are controls, even thinking of caode changing the values to include a CRLF at some place, it's controls displaying the text, only controls and their capability to display more than one row are of interest.
In a grid you have a textbox per column and multiple rows drawn, you can have a dynamiccurrentcontrol in a column, you can set a columns display to use the column control only at the active current row viw sparse and - well - you can specify a different contral than textbox for a column in every row.
What control displays wrapped text? An editbox, correct. So the outset is clear, add an editbox to the grids column of interest. Setting it the currentcontrol is sufficient, you don't want to dynamically change from textbox to editbox and back, an editbox can also display short texts.
But don't expect this to create individual row heights depending on wrapping or not wrapping. You either set the height to be able to display two text lines or you need to get down to the tricky use of some - any - dynamiccurrentproperty to let it set the rowheight depending on the height needed to show the wrapped text. That's not only tricky because of having code processing every row displayed but also since you need to find out whether text wraps and what its height is, if it wraps.
So in the end: Not simple to do, if at all. An excel table/sheet has that quite easily built in via setting column height to autofit mechanisms. You'd need to do such a beast yourself, an algorithm for autofitting.
Bye, Olaf.