nLines=Memlines(_msg) msg_wid=1 _Mline=0 oAlert.FontBold=.T. Do While _Mline<Len(_msg) msg_wid=Max(msg_wid, oAlert.TextWidth(Mline(_msg,1,_Mline))) Enddo msg_wid=Max(msg_wid+20, oAlert.oDugmad.Width) && this is for calculating the form's width, oDugmad is buttons _Mline=0 oAlert.AddObject("oMsg","msg", nLines) && oMsg is a container, with an array of label objects, named oMsg.Box With oAlert.oMsg For i=1 To nLines With .Box[i] .Caption=Mline(_msg,1,_Mline) .FontSize=g_fontsize .FontName=g_fontname .FontBold=.T. .Height=Fontmetric(2,g_fontname,g_fontsize)+Fontmetric(3,g_fontname,g_fontsize) .Top=(i-1)*(.Height+2) .Left=0 .Visible=.T. .BackStyle=0 .Width=msg_wid .Alignment=2 && centered Endwith EndforVarious positional properties here serve just the layout of the form; the OP would probably align them differently, to suit his purpose.