Nesse vídeo demonstraremos a utilização das funções Type e ValType, que servem para validar o tipo do conteúdo de uma variável ou atributo.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
Static cVarStatic := "Ti"
/*/{Protheus.doc} User Function zExe518
Valida se uma variável ou expressão existe na memória
@type Function
@author Atilio
@since 05/04/2023
@see https://tdn.totvs.com/display/tec/Type e https://tdn.totvs.com/display/tec/ValType
@obs
Type
Parâmetros
+ cExpr , Caractere , Indica a expressão em caractere para ser verificada
Retorno
+ cType , Caractere , Retorna o tipo da expressão
ValType
Parâmetros
+ xParam , Caractere , Indica a informação que será verificada
Retorno
+ cRet , Caractere , Retorna o tipo da informação
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe518()
Local cVarLocal := "Ti"
Private cVarPriv := "Ti"
Private oFontTst := TFont():New("Tahoma")
Public __cVarPubl := "Ti"
FWAlertInfo(Type("cVarStatic"), "Type - Static") //Retorna "U" - Indefinido
FWAlertInfo(Type("cVarLocal"), "Type - Local") //Retorna "U" - Indefinido
FWAlertInfo(Type("cVarPriv"), "Type - Private") //Retorna "C" - Caracter
FWAlertInfo(Type("__cVarPubl"), "Type - Public") //Retorna "C" - Caracter
FWAlertInfo(Type("oFontTst:Bold"), "Type - Atributo Ok") //Retorna "L" - Lógico
FWAlertInfo(Type("oFontTst:XXX"), "Type - Atributo Inválido") //Retorna "U" - Indefinido
FWAlertInfo(ValType(cVarStatic), "ValType - Static") //Retorna "C" - Caracter
FWAlertInfo(ValType(cVarLocal), "ValType - Local") //Retorna "C" - Caracter
FWAlertInfo(ValType(cVarPriv), "ValType - Private") //Retorna "C" - Caracter
FWAlertInfo(ValType(__cVarPubl), "ValType - Public") //Retorna "C" - Caracter
FWAlertInfo(ValType(oFontTst:Bold), "ValType - Atributo Ok") //Retorna "L" - Lógico
FWAlertInfo(ValType(oFontTst:XXX), "ValType - Atributo Inválido") //Dá erro de Invalid Property e encerra o programa
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até próxima.