macro no InputMask?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

ArnaldoND
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 23 Jan 2019 16:12
Localização: são paulo/sp

macro no InputMask?

Mensagem por ArnaldoND »

tenho um combobox onde seleciono o tipo do documento; em seguida, e de acordo com o tipo do documento selecionado, devo formatar o textbox com a mascara correta.

daí vem a duvida, é possivel alocar uma macro para a clausula inputmask ??

Outra coisa, na documentação do minigui diz que InputMask do objeto TextBox é tipo propriedade, porém não consigo acessa-lo.
no codigo a seguir, se eu tento ler form1.nDoc.InputMask , nada acontece!

Código: Selecionar todos


#include "minigui.ch"
PUBLIC cPicDoc:= '999.999.999-99' //var macro p/ uso na picture do documento.

DEFINE WINDOW form1 AT 100 , 100 WIDTH 796 HEIGHT 600 main TITLE 'Cadastro de Agentes' ;
		NOSIZE NOMAXIMIZE 

	// Mostra primeiro os componentes estáticos /////////////////////////////////////////////////////
	@ 140,270 LABEL Label_5 VALUE "Tipo Documento:" WIDTH 108 
	@ 140,520 LABEL Label_6 VALUE "Documento:" WIDTH 73

	// Inicia a edição dos campos do cadastro de agentes 
	@ 140,370 COMBOBOX nTipoDoc WIDTH 96 HEIGHT 445 ;
            ITEMS { '001-RG                 ' ,;
					'002-CPF                ' ,;
					'003-CNPJ               ' ,;
					'004-OAB                ' ,;
					'005-CRC                ' ,;
					'006-CRM                ' };
			VALUE 1 ;
			ON LOSTFOCUS {|| Verifica("nTipoDoc") }
			
	@ 140,600 TEXTBOX nDoc        WIDTH 160 HEIGHT 24 NUMERIC ON GOTFOCUS {|| Verifica("nDoc") } INPUTMASK &cPicDoc
END WINDOW
ACTIVATE WINDOW form1
return


//////////////////////////////////////////////
// função de consistência das edições
function Verifica( cVar ) 
if cVar == "nCodInterno"
	if form1.nCodInterno.Value <= 0
		MsgInfo("Codigo invalido!")
		return .f.
	endif
	// verifica se existe no cadastro. caso não exista, entra em modo de inclusão, caso contrário, edição
	//
	//
	//
	//
elseif cVar == "nTipoDoc" .or. cVar == "nDoc"
	// formatar a picture de entrada do documento
	if form1.nTipoDoc.Value = 1 // rg
		SetProperty("form1","nDoc","InputMask","99.999.999-99")
	elseif form1.nTipoDoc.Value = 2 //cpf
		SetProperty("form1","nDoc","InputMask","999.999.999-99")
	elseif form1.nTipoDoc.Value = 3 //cnpj
		SetProperty("form1","nDoc","InputMask","99.999.999/9999-99")
	elseif form1.nTipoDoc.Value = 4 //oab
	elseif form1.nTipoDoc.Value = 5 //crc
	elseif form1.nTipoDoc.Value = 6 //crm 
	else
		cPicDoc := '99.999.999-99'
	endif 
endif

return .t.  //tudo ok, segue com o proximo "get"

desculpem se o código está grosseiro, estou aprendendo!! obrigado
Responder