#include #include #include #include #include #include #include $gui = GUICreate("", 150, 150) Global $aDataInput = _GUICtrlCreateDataGGMMAAAA(20,20,25) Global $aDataInput1 = _GUICtrlCreateDataGGMMAAAA(20,50,25) Global $aDataInput2 = _GUICtrlCreateDataGGMMAAAA(20,80,25) _DataGGMMAAAA_SetFocus($aDataInput) _DataGGMMAAAA_SetColors($aDataInput,$COLOR_BLACK,$COLOR_SKYBLUE) _DataGGMMAAAA_SetColors($aDataInput1,$COLOR_BLACK,$COLOR_SKYBLUE) _DataGGMMAAAA_SetColors($aDataInput2,$COLOR_BLACK,$COLOR_SKYBLUE) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND_DataGGMMAAAA") GUISetState() Local $hDLL = DllOpen("user32.dll") While 1 $nMsg = GUIGetMsg() if $nMsg = $GUI_EVENT_CLOSE Then ExitLoop _ManageBackSpaceDataGGMMAAAA($aDataInput,$hDLL) _ManageBackSpaceDataGGMMAAAA($aDataInput1,$hDLL) _ManageBackSpaceDataGGMMAAAA($aDataInput2,$hDLL) WEnd DllClose($hDLL) ;MsgBox(0,"",_DataGGMMAAAA_ReadData($aDataInput)) ;MsgBox(0,"",_DataGGMMAAAA_ReadData($aDataInput1)) ;******************************************************************************************************************************* Func WM_COMMAND_DataGGMMAAAA($hWnd, $Msg, $wParam, $lParam) ;******************************************************************************************************************************* $nNotifyCode = BitShift($wParam, 16) $nID = BitAnd($wParam, 0x0000FFFF) $hCtrl = $lParam Switch $nNotifyCode Case $EN_UPDATE Manage_WM_COMMAND_DataGGMMAAAA($aDataInput,$hCtrl) Manage_WM_COMMAND_DataGGMMAAAA($aDataInput1,$hCtrl) Manage_WM_COMMAND_DataGGMMAAAA($aDataInput2,$hCtrl) EndSwitch EndFunc ;******************************************************************************************************************************* Func _GUICtrlCreateDataGGMMAAAA($x_func,$y_Func,$AltezzaCampo_Func) ;******************************************************************************************************************************* $DimCampoGG = 20 $DimCampoMM = 20 $DimCampoAAAA = 40 $DimBarraSeparatore = 15 $DimFont = 10 $AttributoFont = 400 Local $aDataInput_Func[3] $aDataInput_Func[0] = GUICtrlCreateInput("", $x_func, $y_Func, $DimCampoGG, $AltezzaCampo_Func,$ES_NUMBER) GUICtrlSetLimit(-1, 2) GUICtrlSetFont($aDataInput_Func[0],$DimFont,$AttributoFont,1) $aDataInput_Func[1] = GUICtrlCreateInput("", $x_func+$DimCampoGG+$DimBarraSeparatore, $y_Func, $DimCampoMM, $AltezzaCampo_Func,$ES_NUMBER) GUICtrlSetLimit(-1, 2) GUICtrlSetFont($aDataInput_Func[1],$DimFont,$AttributoFont,1) $aDataInput_Func[2] = GUICtrlCreateInput("", $x_func+$DimCampoGG+$DimBarraSeparatore+$DimCampoMM+$DimBarraSeparatore, $y_Func, $DimCampoAAAA, $AltezzaCampo_Func,$ES_NUMBER) GUICtrlSetLimit(-1, 4) GUICtrlSetFont($aDataInput_Func[2],$DimFont,$AttributoFont,1) GUICtrlCreateLabel("/",$x_func+$DimCampoGG,$y_Func,$DimBarraSeparatore,$AltezzaCampo_Func) GUICtrlSetColor(-1, $CLR_BLACK) GUICtrlSetFont(-1, $DimFont+4,$AttributoFont,1) GUICtrlSetStyle(-1,$ES_CENTER) GUICtrlCreateLabel("/",$x_func+$DimCampoGG+$DimBarraSeparatore+$DimCampoMM,$y_Func,$DimBarraSeparatore,$AltezzaCampo_Func) GUICtrlSetColor(-1, $CLR_BLACK) GUICtrlSetFont(-1, $DimFont+4,$AttributoFont,1) GUICtrlSetStyle(-1,$ES_CENTER) Return $aDataInput_Func EndFunc ;******************************************************************************************************************************* Func _ManageBackSpaceDataGGMMAAAA($aDataInput_Func,$IsPressed_DLL_Func) ;******************************************************************************************************************************* If _IsPressed("08", $IsPressed_DLL_Func) Then While _IsPressed("08", $IsPressed_DLL_Func) Sleep(25) WEnd If _WinAPI_GetFocus() = GUICtrlGetHandle($aDataInput_Func[2]) Then If StringLen(GUICtrlRead($aDataInput_Func[2])) = 0 Then GUICtrlSetState($aDataInput_Func[1], $GUI_FOCUS) EndIf Return 0 EndIf If _WinAPI_GetFocus() = GUICtrlGetHandle($aDataInput_Func[1]) Then If StringLen(GUICtrlRead($aDataInput_Func[1])) = 0 Then GUICtrlSetState($aDataInput_Func[0], $GUI_FOCUS) EndIf Return 0 EndIf EndIf EndFunc ;******************************************************************************************************************************* Func Manage_WM_COMMAND_DataGGMMAAAA($aDataInput_Func,$hCtrl_Func) ;******************************************************************************************************************************* ;Giorno If $hCtrl_Func = GUICtrlGetHandle($aDataInput_Func[0]) Then if Number(GUICtrlRead($aDataInput_Func[0])) > 31 Then GUICtrlSetData($aDataInput_Func[0],"") EndIf if StringLen(GUICtrlRead($aDataInput_Func[0])) = 2 Then GUICtrlSetState($aDataInput_Func[1], $GUI_FOCUS) EndIf Return 0 EndIf ;Mese If $hCtrl_Func = GUICtrlGetHandle($aDataInput_Func[1]) Then if Number(GUICtrlRead($aDataInput_Func[1])) > 12 Then GUICtrlSetData($aDataInput_Func[1],"") EndIf if StringLen(GUICtrlRead($aDataInput_Func[1])) = 2 Then GUICtrlSetState($aDataInput_Func[2], $GUI_FOCUS) EndIf Return 0 EndIf EndFunc ;******************************************************************************************************************************* Func _DataGGMMAAAA_SetFocus($aDataInput_Func) ;******************************************************************************************************************************* GUICtrlSetState($aDataInput_Func[0], $GUI_FOCUS) EndFunc ;******************************************************************************************************************************* Func _DataGGMMAAAA_ReadData($aDataInput_Func) ;******************************************************************************************************************************* $tmp_anno = GUICtrlRead($aDataInput_Func[2]) $tmp_mese = GUICtrlRead($aDataInput_Func[1]) $tmp_giorno = GUICtrlRead($aDataInput_Func[0]) If _DateIsValid($tmp_anno & "/" & $tmp_mese & "/" & $tmp_giorno)=1 Then Return $tmp_giorno & "/" & $tmp_mese & "/" & $tmp_anno Else Return "" EndIf EndFunc ;******************************************************************************************************************************* Func _DataGGMMAAAA_SetColors($aDataInput_Func,$ColoreTestoCampi_Func,$ColoreBackground_TestoCampi_Func) ;******************************************************************************************************************************* for $i=0 to UBound($aDataInput_Func)-1 GUICtrlSetColor($aDataInput_Func[$i],$ColoreTestoCampi_Func) GUICtrlSetBkColor($aDataInput_Func[$i],$ColoreBackground_TestoCampi_Func) Next EndFunc