... Type content here!
#compile exe #dim all %UNICODE = 1 %test_dialog = -1 #if %test_dialog #resource icon, 101, "./bBaseW32.ico" #resource icon, 103, "./../Question48.ico" #include once "Win32API.inc" #include "./bBaseW_Text_IDs.inc" global gpGetLText, gpGetFieldTypeList, ghFixedFont as dword function pbmain () as long local hLangText, hStdFont as dword local init as quad import addr "GetCtlText","xBaseW_EN.dll" to gpGetLText, hLangText import addr "GetFieldTypeList", "xBaseW_EN.dll" to gpGetFieldTypeList dialog default font "Microsoft Sans Serif", 12, 0, 1 font new "Lucida Console", 12, 0, 1 to ghFixedFont AutoIncInit(0, init) ? dec$(init) import close hLangText end function #endif '========================================================================= declare function GetLText (byval W_ID as long) as wstring declare sub GetFieldTypeList(byref List() as wstring) %dym_pQd = %wm_user + 500 %ID_AutoIncInitLbl = 1001 %ID_ExitBtn = 1002 %ID_AcceptBtn = 1003 %ID_AbandonBtn = 1000 'CB active %ID_AutoIncInitLbl2 = 1004 %ID_AutoIncInitTxtBx = 1005 %ID_AutoIncInitLbl1 = 1006 callback function AtoIncInitDlgCB() as long local TmpStr, TmpStr2 as wstring local TmpLng as long static pQd as quad pointer if cb.msg = %wm_command then select case as long cb.ctl case %ID_ExitBtn dialog end cb.hndl case %ID_AcceptBtn control get text cb.hndl, %ID_AutoIncInitTxtBx to TmpStr TmpLng = verify(TmpStr, "-0123456789"$$) if TmpLng then call dword gpGetLText using GetLText(%BadCharMBmsg) to TmpStr call dword gpGetLText using GetLText(%ErrorMBTtl) to TmpStr2 beep TmpStr += dec$(TmpLng, 0, 1, 0) + "." msgbox TmpStr, %mb_ok or %mb_iconerror or %mb_taskmodal, TmpStr2 exit function end if control get text cb.hndl, %ID_AutoIncInitTxtBx to TmpStr @pQd = val(TmpStr) dialog end cb.hndl 'set quad case %ID_AbandonBtn dialog end cb.hndl end select elseif cb.msg = %dym_pQd then ' once at show of this dialog pQd = cb.wparam ' is pointer to result quad end if end function '----------------------------------------------------------------------------- 'Get Auto-Increment Initial (starting) number function AutoIncInit(byval hParent as dword, _ byref AutoIncInitVal as quad) as long local hAutoIncInitDlg as dword local CtlText as wstring local Parent_X, Parent_Y as long ' dialog get loc hParent to Parent_X, Parent_Y call dword gpGetLText using GetLText(%AutoIncInitTtl) to CtlText dialog new hParent, CtlText, Parent_X + 10, Parent_Y + 10, 160, 124 _ to hAutoIncInitDlg ' - instruction label - - - - - - - - - - - - - - - - - - - call dword gpGetLText using GetLText(%AutoIncInitLbl) to CtlText control add label, hAutoIncInitDlg, %ID_AutoIncInitLbl, CtlText, 5, 5, 150, 58 ' - number characters only label - - - - - - - - - - - - - - - call dword gpGetLText using GetLText(%AutoIncInitLbl1) to CtlText control add label, hAutoIncInitDlg, %ID_AutoIncInitLbl1, CtlText, 5, 63, 150, 10 ' - label for nunber textbox - - - - - - - - - - - - - - - - - call dword gpGetLText using GetLText(%AutoIncInitLbl2) to CtlText control add label, hAutoIncInitDlg, %ID_AutoIncInitLbl2, CtlText, 5, 78, 100, 10 ' - number textbox - - - - - - - - - - - - - - - - - - - - control add textbox, hAutoIncInitDlg, %ID_AutoIncInitTxtBx, "1", 5 ,88, 85, 11, _ %es_autohscroll or %es_right or %ws_tabstop or %es_multiline, _ %ws_ex_clientedge or %ws_ex_left ' - accept button - - - - - - - - - - - - - - - - - - - - call dword gpGetLText using GetLText(%AcceptBtnTop) to CtlText control add button, hAutoIncInitDlg, %ID_AcceptBtn, CtlText, 11 ,104, 60, 15 control set focus hAutoIncInitDlg, %ID_AcceptBtn ' - abandon button - - - - - - - - - - - - - - - - - - - - call dword gpGetLText using GetLText(%AbandonBtnTop) to CtlText control add button, hAutoIncInitDlg, %ID_AbandonBtn, CtlText, 92, 104, 58, 11 ' - pointer for result to callback and show the dialog - - - - - - - - - - dialog post hAutoIncInitDlg,%dym_pQd, varptr(AutoIncInitVal), 0 dialog show modal hAutoIncInitDlg call AtoIncInitDlgCB end function '
Created on August 29, 2023