Jump to content
Fivewin Brasil

Bug em validação de Get com Folder [RESOLVIDO]


emotta

Recommended Posts

Nao, o problema nao era esse.

mas obrigado

Eduardo Motta

citação:

citação:

Pessoal, consegui uma solução para este caso que creio eu ser a mais coerente. Se o valid do GET estiver .f. e o usuario clicar para mudar o FOLDER eu executo o metodo UNDO da classe TGET para retornar o valor. Veja o exemplo abaixo:

Obrigado a todos que ajudaram,

#include "fivewin.ch"

function Main()

local oDlg, oFld

Local cCodigo := Space(06)

Local cEnde := Space(30)

Local cNome := Space(40)

Local cBairro := Space(20)

DEFINE DIALOG oDlg TITLE "FiveWin Dynamic folders" FROM 5, 5 TO 20, 49

@ 0.5, 1 FOLDER oFld PROMPT "FOLDER1", "FOLDER2", "FOLDER3" OF oDlg SIZE 160, 90

oFld:bChange := {|x,y| VldChange(oFld,x,y) }

@ 05,05 Get cCodigo Of oFld:aDialogs[1] PICTURE "@!" VALID ( VAL(cCodigo)>=1 .AND. VAL(cCodigo)<=10) Pixel CENTER

@ 20,05 Get cNome PICTURE "@!" Of oFld:aDialogs[1] Pixel

@ 05,05 Get cEnde PICTURE "@!" Of oFld:aDialogs[2] Pixel

@ 20,05 Get cBairro PICTURE "@!" Of oFld:aDialogs[2] Pixel

@ 5.5, 11 BUTTON "Ok" OF oDlg ACTION ( oDlg:End() )

ACTIVATE DIALOG oDlg CENTERED

MsgStop(cCodigo)

return nil

Static Function VldChange(oFolder,nOption, nOldOption)

Local nI

Local nJ

Local oObj

Local lSai := .F.

For nI := 1 to Len(oFolder:aDialogs)

aControls := oFolder:aDialogs[nI]:aControls

For nJ := 1 to Len(oFolder:aDialogs[nI]:aControls)

If GetFocus()==oFolder:aDialogs[nI]:aControls[nJ]:hWnd

oObj := aControls[nI]

Try

If !oObj:lValid()

oObj:Undo()

EndIf

Catch

End

lSai := .T.

Exit

EndIf

Next

If lSai

Exit

EndIf

Next

Return .T.

EMotta Sistemas

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 - xHARBOUR 1.2.1


id=quote>id=quote>

Creio eu que o problema desde o inicio é apenas uma confusão entre variavel objeto e variavel valor.

O get que voce esta criando tem a variavel objeto cNome e depois esta variavel se torna uma variavel conteudo de valor.

O certo seria assim:

@ 05,05 Get oBjetoCodigo var cCodigo Pict "@!" Valid (Val(cCodigo)>=1 .and. Val(cCodigo)<=10) Of oFld:aDialogs[1] Pixel

Giovany Vecchi - Jales - SP

FWH 8.6 / Harbour RC1 V 1.0.0 / Code Gear 6 Bcc 5.6 /Bcc 5.9 / Ads 8.1 /PellesC


id=quote>id=quote>

EMotta Sistemas

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 - xHARBOUR 1.2.1

Link to comment
Share on other sites

  • 3 years later...

Estou com um problema sério no ButtonBmp.


Tenho um Get numa Folder para a digitação do número do cliente e na frente um botão com ButtonBmp que abre uma tela de seleção do cliente. Se eu clicar sobre o botão ele anula o VALID do campo Get e depois disso, qualquer informação que eu digitar no Get ele passa sem validação.

Como posso corrigir isso?

Aguardo,

Link to comment
Share on other sites

Oscar, a solução para o meu caso na época vou utilizar o evento bChange do Folder e tratar isso, dessa maneira abaixo: (caso nao resolva sugiro criar um novo post mas este já está marcado como RESOLVIDO)

// coloque isso logo depois de criar o Folder

oFld:bChange := {|x,y| VldChange(oFld,x,y) }




// esta é a função de tratamento que deve ficar no fonte ou vc criar um nome genérico e tirar o STATIC dela deixando disponivel para todos os fontes:

Static Function VldChange(oFolder,nOption, nOldOption)
Local nI
Local nJ
Local oObj
Local lSai := .F.

For nI := 1 to Len(oFolder:aDialogs)
aControls := oFolder:aDialogs[nI]:aControls
For nJ := 1 to Len(oFolder:aDialogs[nI]:aControls)
If GetFocus()==oFolder:aDialogs[nI]:aControls[nJ]:hWnd
oObj := aControls[nI]
Try
If !oObj:lValid()
oObj:Undo()
EndIf
Catch
End
lSai := .T.
Exit
EndIf
Next
If lSai
Exit
EndIf
Next
Return .T.

Pior que nem eu lembro como resolvi o caso... rs...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...