Here is a CallBack Example:
[font=courier]
Home_Path = DirScript()
Data_Path = ShortCutDir("Local AppData",0,@TRUE):"Scan\"
DirChange(Home_Path)
GoSub Load_Routines
IntControl(49,3,0,0,0)
ScanFormat=`WWWDLGED,6.2`
ScanCaption=`Scan`
ScanX=-01
ScanY=-01
ScanWidth=144
ScanHeight=057
ScanNumControls=004
ScanProcedure=`Scan`
ScanFont=`DEFAULT`
ScanTextColor=`DEFAULT`
ScanBackground=`DEFAULT,192|192|192`
ScanConfig=0
Scan001=`047,037,036,012,PUSHBUTTON,pb_Sca_OK,DEFAULT,"OK",1,2,@csDefButton,DEFAULT,DEFAULT,DEFAULT`
Scan002=`097,037,036,012,PUSHBUTTON,pb_Sca_Cancel,DEFAULT,"Cancel",0,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Scan003=`023,007,112,012,EDITBOX,eb_Sca_scan_text,scan_text,"scan_text",DEFAULT,30,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Scan004=`001,009,020,012,STATICTEXT,st_Sca_Text,DEFAULT,"Text:",DEFAULT,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
ButtonPushed=Dialog("Scan")
Exit
:Load_Routines
#DefineSubRoutine Scan(Sca_Handle,DMsg,DCID,DEInfo,ChangeInfo)
Switch (DMsg)
Case @deInit
DialogProcOptions(Sca_Handle, @deClose,1) ; Close selected (IntControl(49....) (1-On, 0-Off).
DialogProcOptions(Sca_Handle, @dpoDisable,0) ; Dialog Disable (1-Disable, 2-Wait cursor, 0-Enable).
DialogProcOptions(Sca_Handle, @dpoBkground,-1) ; Change Dialog Background (Bitmap File or RGB String).
DialogProcOptions(Sca_Handle, @dePbPush,1) ; Pushbutton/PictureButton.
DialogProcOptions(Sca_Handle, @deEdText,1) ; EditBox or Multi-LineBox.
scan_text = ""
DialogControlSet(Sca_Handle,"eb_Sca_scan_text",@dcText,scan_text)
DialogControlState(Sca_Handle,"eb_Sca_scan_text",@dcsSetFocus,1)
Break
Case @deClose
Return 9
Break
Case @deEdText
Switch(DialogProcOptions(Sca_Handle,@dpoCtlNumber,DCID))
Case DialogProcOptions(Sca_Handle,@dpoCtlNumber,"eb_Sca_scan_text")
scan_text = DialogControlGet(Sca_Handle,"eb_Sca_scan_text",@dcText)
Break
EndSwitch
Break
Case @dePbPush
Switch(DialogProcOptions(Sca_Handle,@dpoCtlNumber,DCID))
Case DialogProcOptions(Sca_Handle,@dpoCtlNumber,"pb_Sca_OK")
scan_text = DialogControlGet(Sca_Handle,"eb_Sca_scan_text",@dcText)
;###########################
Message("SCAN",scan_text)
;DO WHATEVER WITH THE DATA
;###########################
scan_text = ""
DialogControlSet(Sca_Handle,"eb_Sca_scan_text",@dcText,scan_text)
DialogControlState(Sca_Handle,"eb_Sca_scan_text",@dcsSetFocus,1)
Break
Case DialogProcOptions(Sca_Handle,@dpoCtlNumber,"pb_Sca_Cancel")
;###########################
;DO WHATEVER BEFORE CLOSING
;###########################
Return -1
Break
EndSwitch
Break
EndSwitch
Return -2
#EndSubRoutine
Return[/font]