Sample Code

/* DlgAreaDemo.Rex  --  Demonstrate DlgArea & DlgAreaU Classes  --  Feb 2006 */

MyDlg=.MyDialog~new
MyDlg~execute("ShowTop")
MyDlg~DeInstall

exit
::requires "OODWIN32.CLS"
/* ========================================================================= */
::class MyDialog Subclass UserDialog
/* ========================================================================= */
::method Init
/* ------------------------------------------------------------------------- */
  self~Init:super
  rc=self~CreateCenter(250,250,"MyDialog","ThickFrame", ,"MS Sans Serif",8)
  self~InitCode=(rc=0)
  self~connectResize("OnResize")

/* ------------------------------------------------------------------------- */
::method DefineDialog
/* ------------------------------------------------------------------------- */
expose u

u=.dlgAreaU~new(self)                                         /* whole dlg   */
if u~lastError \= .nil then call errormessage u~lastError
e=.dlgArea~new(u~x       ,u~y       ,u~w("70%"),u~h("90%"))   /* edit   area */
s=.dlgArea~new(u~x       ,u~y("90%"),u~w("70%"),u~hr      )   /* status area */
b=.dlgArea~new(u~x("70%"),u~y       ,u~wr      ,u~hr      )   /* button area */

self~AddEntryLine(12,"text",e~x,e~y,e~w,e~h,"multiline")
self~AddText(s~x,s~y,s~w,s~h,"Status info appears here", ,11)

self~addButton(13,b~x,b~y("00%"),b~w,b~h("9%"),"Button" 0,"Button"||0)
self~addButton(14,b~x,b~y("10%"),b~w,b~h("9%"),"Button" 1,"Button"||1)
self~addButton(15,b~x,b~y("20%"),b~w,b~h("9%"),"Button" 2,"Button"||2)
self~addButton(16,b~x,b~y("30%"),b~w,b~h("9%"),"Button" 3,"Button"||3)
self~addButton(17,b~x,b~y("40%"),b~w,b~h("9%"),"Button" 4,"Button"||4)
self~addButton(18,b~x,b~y("50%"),b~w,b~h("9%"),"Button" 5,"Button"||5)
self~addButton(19,b~x,b~y("60%"),b~w,b~h("9%"),"Button" 6,"Button"||6)
self~AddButton( 1,b~x,b~y("90%"),b~w,b~h("9%"),"Ok","Ok","DEFAULT")

/* ------------------------------------------------------------------------- */
::method Unknown
/* ------------------------------------------------------------------------- */
use arg msgname, args
StatusLine = Self~GetStaticControl(11)
StatusLine~SetTitle("You Pressed" msgname)

/* ------------------------------------------------------------------------- */
::method OnResize
/* ------------------------------------------------------------------------- */
expose u
use arg dummy,sizeinfo
                                 /* wait for last size event msg then resize */
if self~PeekDialogMessage~left(8) \= "OnResize" then u~resize(self,sizeinfo)

This achieves the same dialog as the previous DlgArea example, but now it is resizable by dragging the frame.