lcNewValue = “ABC, DDC, [S1] AlV, GKL," lcTempOrder = "[S2] DCC, KLB” && if won't fit on one line, wrap in appropriate place * If it won't fit, then break it like this example: *ABC, DDC *[S1] AIV, GKL *[S2] DCC, KLB nWidth = THISFORM.GetTextWidth(lcTempOrder+lcNewValue, ALLTRIM(Thisform.txtorderby.fontname),THISFORM.txtorderby.fontsize,'') IF nWidth > (THISFORM.txtOrderBy.Width - 30) && width of control minus the scrollbar width lcTempOrder = ALLTRIM(lcTempOrder) + IIF(RIGHT(ALLTRIM(lcTempOrder),1)<>',',',','') IF EMPTY(lcNewOrder) lcNewOrder = lcTempOrder IF !CHR(13) $ lcNewValue lcTempOrder = CHR(13) + IIF(!THISFORM.plOrderByCat,LTRIM(CHRTRAN(lcNewValue,',','')),CHRTRAN(lcNewValue,',','')) ELSE lcTempOrder = IIF(!THISFORM.plOrderByCat,LTRIM(CHRTRAN(lcNewValue,',','')),CHRTRAN(lcNewValue,',','')) ENDIF ELSE IF !CHR(13) $ lcTempOrder lcTempOrder = CHR(13) + LTRIM(lcTempOrder) lcNewOrder = lcNewOrder + lcTempOrder lcTempOrder = CHR(13) + IIF(!THISFORM.plOrderByCat,LTRIM(CHRTRAN(lcNewValue,',','')),CHRTRAN(lcNewValue,',','')) ELSE lcNewOrder = lcNewOrder + lcTempOrder lcTempOrder = CHR(13) + IIF(!THISFORM.plOrderByCat,LTRIM(CHRTRAN(lcNewValue,',','')),CHRTRAN(lcNewValue,',','')) ENDIF ENDIF ELSE lcTempOrder = lcTempOrder + LTRIM(lcNewValue) ENDIF PROCEDURE gettextwidth LPARAMETERS tc_Text, tc_FontName, tn_FontSize, tc_FontStyle Return ( TxtWidth( tc_Text, tc_FontName, tn_FontSize, tc_FontStyle ) * ; FontMetric( 6, tc_FontName, tn_FontSize, tc_FontStyle ) )