AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Controles, páginas y ventanas / Funciones de máscara
  • Propiedades específicas de las variables de tipo InputMask
  • Uso
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
El tipo InputMask permite definir las características avanzadas de una máscara de entrada personalizada. Las características de esta máscara de entrada personalizada se pueden definir y cambiar utilizando diferentes propiedades WLanguage.
Observación: Para obtener más información sobre la declaración de este tipo de variable y el uso de propiedades WLanguage, consulte Declarar una variable.
Ejemplo
sMask is string = "99 99 99 99 99"
CustomMask is InputMask
CustomMask.FormatDuringInput = FormatDuringInput
CustomMask.ValidateDuringInput = ValidateDuringInput
CustomMask.ValidateDuringExit = ValidateDuringExit
CustomMask.FormatDuringExit = FormatDuringExit
CustomMask.FormatDuringEntry = FormatDuringEntry
CustomMask.FormatDuringAssignment = FormatDuringAssignment
CustomMask.CheckIfValidInput = CheckIfValidInput

EDT_Phone.InputMask = CustomMask

INTERNAL PROCEDURE FormatDuringInput(LOCAL sTextBefore is string, 
	sTextAfter is string, ...
	nCursorAfter is int, ...
	nEndCursorAfter int)
	IF Length(sTextBefore) > Length(sTextAfter) THEN RESULT 
	//No action if deleting
	// if at the end
	IF nEndCursorAfter = Length(sTextAfter) +1 THEN
		// include " " if needed at this location
		IF Middle(sMask, nEndCursorAfter, 1) = " " THEN
			sTextAfter += " "
			nEndCursorAfter ++
			nCursorAfter = nEndCursorAfter
		END
	END
END
INTERNAL PROCEDURE ValidateDuringInput(sText is string): boolean
	RETURN MatchRegularExpression(sText , "[0-9 ]*")
END
INTERNAL PROCEDURE CheckIfValidInput(sText is string): boolean
	RETURN ValidateDuringInput(sText) _AND_ Length(sText) >= 3
END
INTERNAL PROCEDURE FormatDuringAssignment(sText_INOUT is string) 
		FormatStringToPhoneNumber(sText_INOUT)
END
INTERNAL PROCEDURE ValidateDuringExit(sText is string): boolean
	IF Length(sText) < 3 THEN
		ToastDisplay("3 characters minimum")
		RESULT False
	END
	RETURN True
END
INTERNAL PROCEDURE FormatDuringExit(sText_INOUT is string) 
	FormatStringToPhoneNumber(sText_INOUT)
END
INTERNAL PROCEDURE FormatDuringEntry(sText_INOUT is string) 
	FormatStringToPhoneNumber(sText_INOUT)
END
INTERNAL PROCEDURE FormatStringToPhoneNumber(sText_INOUT is string)
	// group numbers like in the mask
	sText_INOUT = Replace(sTexte_INOUT," ","")
	sResult is string
	nPosSrc is int = 1
	FOR I = 1 _TO_ Length(sMask)
		// depending on the character in the mask
		SWITCH Middle(sMask, I, 1) 
			CASE " "
				sResult += " "
			OTHER CASE
				// keep the entered character
				sResult += Middle(sText_INOUT, nPosSrc, 1) 
				nPosSrc++
		END
	END
	sText_INOUT = sResult
END
Observaciones

Propiedades específicas de las variables de tipo InputMask

Las siguientes propiedades pueden utilizarse para manipular una máscara de entrada personalizada:
Nombre de la propiedadTipo utilizadoEfecto
CheckIfValidInputProcedimiento WLanguageNombre del procedimiento WLanguage llamado por las funciones InvalidInputDetect y InvalidInputListControl para determinar si el texto introducido es válido.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Text> string)
donde <Texto> corresponde al texto a manipular.
Si no se especifica esta propiedad, no se realiza ninguna verificación.
FormatDuringAssignmentProcedimiento WLanguageNombre del procedimiento WLanguage que convierte el texto asignado mediante programación en el texto que se mostrará.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Text> string)
donde <Texto> corresponde al texto a manipular.
Si no se especifica esta propiedad, no se realiza ninguna transformación.
FormatDuringEntryProcedimiento WLanguageNombre del procedimiento WLanguage que transforma el texto que se muestra al entrar en edición.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Text> string)
donde <Texto> corresponde al texto a manipular.
Si no se especifica esta propiedad, no se realiza ninguna transformación.
FormatDuringExitProcedimiento WLanguageNombre del procedimiento WLanguage que transforma el texto al salir de la edición.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Text> string)
donde <Texto> corresponde al texto a manipular.
Si no se especifica esta propiedad, no se realiza ninguna transformación.
FormatDuringInputProcedimiento WLanguageNombre del procedimiento WLanguage que transforma el texto durante la entrada.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(LOCAL<Text before> string,
LOCAL <Cursor before> int,
LOCAL <End Cursor before> int,
<Text after> string, <Cursor after> int,
<End Cursor after> int)
donde:
  • <Texto antes> corresponde al texto antes de la entrada.
  • <Cursor antes> corresponde a la posición del cursor antes de la entrada.
  • <Fin cursor antes> corresponde a la posición final del cursor antes de la entrada.
  • <Texto después> corresponde al texto después de la entrada.
  • <Cursor después> corresponde a la posición del cursor después de la entrada.
  • <Fin cursor después> corresponde a la posición final del cursor después de la entrada.
Si no se especifica esta propiedad, no se realiza ninguna transformación.
ValidateDuringExitProcedimiento WLanguageNombre del procedimiento WLanguage que verifica la entrada (una vez que se han introducido todos los caracteres). Este procedimiento devuelve False si el texto introducido contiene caracteres no válidos.
Se llamará a este procedimiento al salir del control solo si la validación de la entrada está en modo bloqueante. Para obtener más información, consulte Entrada obligatoria o no válida en WINDEV.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Text> string)
donde <Texto> corresponde al texto a manipular.
Si no se especifica esta propiedad, no se realiza ninguna transformación.
ValidateDuringInputProcedimiento WLanguageNombre del procedimiento WLanguage que verifica la entrada en curso. Este procedimiento devuelve False si el texto que se está introduciendo contiene caracteres no válidos.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(<Text> string)
donde <Texto> corresponde al texto a manipular.
Si no se especifica esta propiedad, no se realiza ninguna transformación.

Uso

  • Una variable de tipo InputMask puede ser asignada a la propiedad InputMask para controlar de forma personalizada cada evento relacionado con la gestión de una máscara en un control Campo de entrada.
  • Las funciones MaskPhoneNumber y MaskZipCode manipulan variables de tipo InputMask.
Versión mínima requerida
  • Versión 25
Esta página también está disponible para…
Comentarios
Exemplo
https://repository.windev.com/resource.awp?file_id=281474976711152;valida-cpf-cnpj-telefone-com-mascara-validacao-com-expressao-regular
Boller
12 07 2021

Última modificación: 15/09/2024

Señalar un error o enviar una sugerencia | Ayuda local