uso simplificado do getproperty com exemplos práticos

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

mmaciel11
Usuário Nível 2
Usuário Nível 2
Mensagens: 69
Registrado em: 23 Mar 2006 11:16
Localização: sao luis
Contato:

uso simplificado do getproperty com exemplos práticos

Mensagem por mmaciel11 »

Boa Tarde a todos,

Queria saber o uso simplificado do getproperty com exemplos práticos.


desde já agradeço.





utilizo xbase, minigui, xharbour
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Re: uso simplificado do getproperty com exemplos práticos

Mensagem por HASA »

:D
Retrieves a window or control property value.
Recupera uma janela ou controle, propriedade valor.

SYNTAX
GetProperty (<cWindowName>[,<cControlName>] ,<cPropertyName>)--> PropertyValue

Como no Clipper o Get pega um valor digitado em uma variavel, aqui vc pega o valor de um controle qualquer passando por parametro a uma função que tratará e retornará um informação do controle.

Veja em C:\Minigui\SAMPLES\BASIC\Form_Controls
:xau
Avatar do usuário
marcosLP
Usuário Nível 1
Usuário Nível 1
Mensagens: 47
Registrado em: 13 Nov 2020 10:24
Localização: guarpauava/pr

uso simplificado do getproperty com exemplos práticos

Mensagem por marcosLP »

eu não consegui usar o getproperty nem o setproperty quando o campo que preciso é PASSWORD, segue exemplo abaixo, peço desculpas se não é dessa forma.
Quando o usuario clicar no checkbox para exibir a senha (como em muitos sites) ele permite o campo se tornar PASSWORD .F., por padrão vem .T.
não consegui e dá erro então fiz de uma forma bem pouco profissional mas funciona, só que eu gostaria de poder fazer isso em apenas uma linha.
Agradeceria se pudessem ajudar.

Código: Selecionar todos

*-----------------------------------------------------------------------------------
Function ExibeSenha1()

local xCHEKA := (Form_Acesso.tx_EXIBE1.value)
local xSENHA := (Form_Acesso.p_password.VALUE)

*GetProperty (<cWindowName>[,<cControlName>] ,<cPropertyName>)--> PropertyValue
*SetProperty ( <cWindowName>[,<cControlName>], <cPropertyName> , <PropertyValue> )

IF xCHEKA = .T.

	Form_Acesso.p_password.RELEASE

	li := 127
	ci := 153
	define textbox 	p_password
		PARENT Form_Acesso
		row li
		col ci
		width	251
		height	24
		DATATYPE CHARACTER
		CASECONVERT UPPER
		PASSWORD .F.
		ONGOTFOCUS ( This.BackColor := (pAMA) )
		value (xSENHA)
		ONLOSTFOCUS ( This.BackColor := (pBCO) )
		MAXLENGTH 10
		tabstop .T.
		readonly .F.
		fontbold .T.
		ONENTER Verifica_Login()
	end textbox
	
ELSE
	
	Form_Acesso.p_password.RELEASE

	li := 127
	ci := 153
	define textbox 	p_password
		PARENT Form_Acesso
		row li
		col ci
		width	251
		height	24
		DATATYPE CHARACTER
		CASECONVERT UPPER
		PASSWORD .T.
		ONGOTFOCUS ( This.BackColor := (pAMA) )
		value (xSENHA)
		ONLOSTFOCUS ( This.BackColor := (pBCO) )
		MAXLENGTH 10
		tabstop .T.
		readonly .F.
		fontbold .T.
		ONENTER Verifica_Login()
	end textbox
	
ENDIF	
RETURN
Anexos
senha1.png
Editado pela última vez por JoséQuintas em 09 Out 2022 22:42, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

uso simplificado do getproperty com exemplos práticos

Mensagem por JoséQuintas »

Só "enxugando" seu fonte.

Código: Selecionar todos

FUNCTION ExibeSenha1()

   LOCAL lExibe, cSenha

   lExibe := Form_Acesso.tx_EXIBE1.value
   cSENHA := Form_Acesso.p_password.VALUE

   Form_Acesso.p_password.RELEASE

   li := 127
   ci := 153
   DEFINE TEXTBOX p_password
      PARENT Form_Acesso
      ROW li
      COL ci
      WIDTH 251
      HEIGHT 24
      DATATYPE CHARACTER
      CASECONVERT UPPER
      PASSWORD ! lExibe
      ONGOTFOCUS ( This.BackColor := (pAMA) )
      VALUE ( cSENHA )
      ONLOSTFOCUS ( This.BackColor := (pBCO) )
      MAXLENGTH 10
      TABSTOP .T.
      READONLY .F.
      FONTBOLD .T.
      ONENTER Verifica_Login()
   END TEXTBOX
   
   RETURN
Teria que olhar no fonte da minigui no que afeta PASSWORD.
Se for variável de uso da minigui, talvez só alterar o conteúdo.
Mas se o controle depende disso definido antes da montagem, só do jeito que fez mesmo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

uso simplificado do getproperty com exemplos práticos

Mensagem por carlaoonline »

Boa tarde!
marcosLP escreveu: fiz de uma forma bem pouco profissional mas funciona
KKKK Nisso eu sou campeão!

A princípio, o GetProperty funciona normalmente para qualquer propriedade, mesmo nos password, apenas o SetProperty que funciona apenas nas propriedades que são Read-Only, conforme C:\MiniGUI\Doc\MiniGui.chm, demais são Acessíveis Somente na Criação do Controle.
Propriedades dos controles -&gt; MiniGUI.chm
Propriedades dos controles -> MiniGUI.chm
Na época do Summer 87 tinha que criar tudo no braço, hoje no harbour já tem quase tudo pronto, MAS EM MUITOS CASOS nem perco tempo procurando, continuo usando minhas próprias funções, e muitas ainda são gambiarras se comparadas as novas funções (nem tão novas) que fazem em 1 linha o que escrevi em 10, certo que por outro lado elas também possuem várias linhas programadas nos arquivos de origem (Lib, Ch...)



No caso do campo com senhas, nem procurei como seria a maneira mais enxuta de fazer, apenas criei dois TextBox um password e outro normal, um atualiza o outro.
Quando clica no checkbox, mostra o textbox normal, quando desmarca o checkbox daí mostra o textbox password. Ambos nas mesmas coordenadas.

Código: Selecionar todos

             // Esse textbox NAO mostra a senha
              @ 097,005 textbox tbox_002;
                        of form_dados;
                        height 027;
                        width 120;
                        value x_senha;
                        maxlength 010;
                        uppercase;
                        ON ENTER _Pushkey(VK_TAB) ;
                        on change SETPROPERTY("form_dados","tbox_002_mostra","value",this.value);
                        password


              // Esse textbox MOSTRA a senha, um atualiza o outro e soh eh mostrado um ou outro na tela
              @ 097,005 textbox tbox_002_MOSTRA;
                        of form_dados;
                        height 027;
                        width 120;
                        value x_senha;
                        maxlength 010;
                        ON ENTER _Pushkey(VK_TAB) ;
                        on change SETPROPERTY("form_dados","tbox_002","value",this.value);
                        uppercase ;
                        INVISIBLE

             // Esse checkbox alterna entre mostrar ou nao mostrar a senha
              @ 097,150 CheckBox check_Mostrar_Senha Caption "Mostrar senha";
                        Value .F. Width 130;
                        ON ENTER _Pushkey(VK_TAB) ;
                        on change Mostra_Senha_Usuario(This.value)   //Show_Password( "tbox_002", This.Value )



//----------------------------------------------------------
Function Mostra_Senha_Usuario(lMostra)
//----------------------------------------------------------
IF lMostra .AND. Verifica_Acesso(59)
      SETPROPERTY("form_dados","tbox_002","visible",.F.)
      SETPROPERTY("form_dados","tbox_002_mostra","visible",.T.)
      form_dados.tbox_002_mostra.SetFocus
      _PushKey(VK_DOWN)  // Para deselecionar / Funcionar o SetFocus
      
 ELSE
      SETPROPERTY("form_dados","tbox_002","visible",.T.)
      SETPROPERTY("form_dados","tbox_002_mostra","visible",.F.)
      SETPROPERTY("form_dados","check_Mostrar_Senha","value",.F.)
      form_dados.tbox_002.SetFocus
      _PushKey(VK_DOWN)  // Para deselecionar / Funcionar o SetFocus
ENDIF
RETURN
//----------------------------------------------------------


Responder