Clipper On Line • Ver Tópico - Formatar a picture no início da digitação
Página 1 de 1

Formatar a picture no início da digitação

MensagemEnviado: 22 Jan 2021 17:44
por Softwhouse
Alguém poderia dar uma luz nessa rotina? Não formata o GetBox corretamente.


#include "minigui.ch"

Procedure Main

Local cMascara:= Space(20)
Local cNome:= Space(40)

        Define Window Form_1 ;
                 AT 0,0 ;
                 Width  600 ;
                 Height 400 ;
            NoSize ;
                 Main    

                Define Label Label_Mascara
                          Col 010
                          Row 137
                          AutoSize .T.
                          Value 'Mascara:'
                End Label

                Define GetBox Gbox_Mascara
                          Col 090
                          Row 134
                          Width 128
                          Value cMascara
                          Picture '####################'
                          OnChange {||MudaPicture(Form_1.Gbox_Mascara.Value,cMascara)}   
                End GetBox
       
           Define Label Label_Nome
                          Col 010
                Row 170
                     AutoSize .T.
                Value 'Nome:'
                End Label
       
           Define GetBox Gbox_Nome
                     Col 090
                Row 167
                          Width 250
                Value cNome
                End GetBox       

End Window       
         
Form_1.Center
Form_1.Activate   
   
Return

Function MudaPicture()
Local cTxt
cTxt:= GetProperty('Form_1', 'Gbox_Mascara', 'Value')
If SubStr(cTxt,1,1) == '1'     
   SetProperty('Form_1','Gbox_Mascara','Picture', '9.999.999.999')
   DoMethod('Form_1','Gbox_Mascara','SetFocus')
EndIf
Return(.T.)


Formatar a picture no início da digitação

MensagemEnviado: 23 Jan 2021 17:03
por asimoes
A sua chamada a função:

MudaPicture(Form_1.Gbox_Mascara.Value,cMascara)

Os parâmetros da função MudaPicture ?????

Formatar a picture no início da digitação

MensagemEnviado: 24 Jan 2021 19:09
por Softwhouse
Olá ASimoes,

Fiz o exemplo na corrida, na verdade os parâmetros não são necessários. Ocorre que na Picture fica assim: 1..11.111.111

Se eu definir a Picture como '99.999.999.999' funciona.

Formatar a picture no início da digitação

MensagemEnviado: 24 Jan 2021 21:16
por asimoes
O valor é string ? tentou com @R ? se for string tem que preencher com espaços a frente do número para usar @R

Formatar a picture no início da digitação

MensagemEnviado: 25 Jan 2021 09:53
por Softwhouse
Olá o valor são números e pontos.

Formatar a picture no início da digitação

MensagemEnviado: 05 Fev 2021 19:29
por Softwhouse
Alguém saberia como relatar esse bug ao desenvolvedor da Minigui ?

Formatar a picture no início da digitação

MensagemEnviado: 05 Fev 2021 20:56
por asimoes
Isso ai vc vai ter que tratar antes de colocar no campo, pode ser até usando a função Transform

Formatar a picture no início da digitação

MensagemEnviado: 05 Fev 2021 21:03
por asimoes
Olhando a documentação:

SetProperty('Form_1','Gbox_Mascara','Picture', '9.999.999.999')

Picture aceira @R, se você diz que o valor já vem com os pontos então não vejo sentido o uso de picture, a não ser que você remova os ponto e deixe a função formatar com a picture