08-06-2022, 02:31 PM
This should be a good starting point
str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 392 192 "Dialog" "4"
;4 Edit 0x54030080 0x200 280 8 104 12 ""
;5 Edit 0x54030080 0x204 280 28 104 13 ""
;3 Edit 0x54231044 0x200 8 8 264 176 ""
;1 Button 0x54030001 0x4 280 171 48 14 "OK"
;2 Button 0x54030000 0x4 336 171 48 14 "Cancel"
;END DIALOG
;DIALOG EDITOR: "" 0x2040C02 "*" "" "" ""
str controls = "4 5 3"
str e4 e5 e3
e3=
;My name is ┆name┆, my age is ┆age┆, thank you!
if(!ShowDialog(dd &sub.DlgProc &controls)) ret
#sub DlgProc v;; must have v attribute
function# hDlg message wParam lParam
sel message
,case WM_INITDIALOG
,str- e3t1 e3t2
,SendMessage id(4 hDlg) EM_SETCUEBANNER TRUE @"┆name┆"
,SendMessage id(5 hDlg) EM_SETCUEBANNER TRUE @"┆age┆"
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
,case [EN_CHANGE<<16|4,EN_CHANGE<<16|5]
,DT_GetControls(hDlg)
,_s=e3
,if(empty(e4))
,,e4="┆name┆"
,if(empty(e5))
,,e5="┆age┆"
,if(findrx(_s "┆name┆" 0 8)>=0)
,,_s.replacerx("┆name┆" e4 8)
,else
,,_s.replacerx(e3t1 e4 2|8);err
,if(findrx(_s "┆age┆" 0 8)>=0)
,,_s.replacerx("┆age┆" e5 8)
,else
,,_s.replacerx(e3t2 e5 2|8);err
,e3t1= e4
,e3t2=e5
,DT_SetControl(hDlg 3 _s)
ret 1