cendon Posted July 26, 2013 Report Share Posted July 26, 2013 Olá pessoal!! Sexta fim de tarde ninguem merece, ja deveria estar tomando umas, mas vamos lá To com um problema Tenho uma rotina de entrada de dados que funcionava perfeitamente na versão fwh 2.4 porem quando mudei para 6.12 deu o seguinte erro: quando tento atualizar os campos da tela somente são atualizados os campos de get os de say não atualizam, a rotina é simples, tela feita no workshop, mostra alguns gets a alguns say quando clico no botão proximo registro, é feito o skip, carregamento da variavel e refresh(), porem não atualiza os campos que estão com say somente os gets. alguem já passou por isso? Procurei no forum não achei nada parecido. Se alguem puder ajudar. Um abraço Quote Link to comment Share on other sites More sharing options...
Arthur Silvestre Posted July 27, 2013 Report Share Posted July 27, 2013 Poste o trecho do código, fica mais facil de ajuda-lo. Quote Link to comment Share on other sites More sharing options...
Ale SB Posted July 27, 2013 Report Share Posted July 27, 2013 Colega, força a atualizaçao com o Update, caso nao esteja usando... oSay:Refresh(), oDlg:Update()... @braços Ale Quote Link to comment Share on other sites More sharing options...
cendon Posted July 29, 2013 Author Report Share Posted July 29, 2013 Não o que acontece não atualiza a variavel da rotina anterior, mesmo ela public function testesay() //************** inicaliza contador ************** public mcontaa, ocontaa MCONTAa="0000000" DEFINE DIALOG oDlg5 FROM 5, 1 TO 15, 50 ; TITLE "Contador de Registros" FONT oFont; @ 1, 2 SAY "Contador:" OF oDlg5 @ 2, 8 SAY ocontaa VAR mcontaa OF oDlg5 ACTIVATE DIALOG oDlg5 nowait somac() ************************************************ function somac() for i =1 to 10 ************* atualiza contador ************ mcontaa=val(mcontaa)+1 mcontaa=strzero(mcontaa,7) ocontaa:refresh() msgalert("contando: "+mcontaa) ******************************************** next oDlg5:end() return nil Quote Link to comment Share on other sites More sharing options...
Ale SB Posted July 29, 2013 Report Share Posted July 29, 2013 Colega; Usa o SysWait neste caso, q funciona...( eu mesmo testei e atualiza certinho)... function somac() for i =1 to 10 ************* atualiza contador ************ mcontaa=val(mcontaa)+1 mcontaa=strzero(mcontaa,7) ocontaa:refresh() SysWait() //msgalert("contando: "+mcontaa) ******************************************** next oDlg5:end() return nil @braços Ale Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 29, 2013 Report Share Posted July 29, 2013 Faltou o VARPUT( mContaa ) Quote Link to comment Share on other sites More sharing options...
Ale SB Posted July 29, 2013 Report Share Posted July 29, 2013 Neste Caso especifico, nao tem necessidade do VARPUT( mContaa ).....soh o Refresh() ja atualiza o q faltava era o SysWait() para visualizar a atualizaçao. Mas, se kizer colocar....mal tb nao faz..eh soh uma linha A+. @braços Ale Quote Link to comment Share on other sites More sharing options...
AnaCatacombs Posted July 29, 2013 Report Share Posted July 29, 2013 VarPut no say eu nunca usei. Normalmente uso SetText para funcionar. Como utilizo gtwvw com fivewin, quando tento usar o syswait o sistema as vezes trava. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 29, 2013 Report Share Posted July 29, 2013 VarPut no say eu nunca usei. Normalmente uso SetText para funcionar. Como utilizo gtwvw com fivewin, quando tento usar o syswait o sistema as vezes trava. Ola Ana, sempre usei e funciona tranquilo, basta declarar como MEMVAR MEMVAR aSaysMoveis aSaysMoveis := Array(8) // nID = Numero de ID's dos Say's Que Tenho na Dialog nIDM := 601 // Para ID de 601 a 607 na Dialog - Says Moveis, Invisiveis For IDCor := 1 To Len( aSaysMoveis ) REDEFINE SENSITIVE SAY aSaysMoveis[IDCor] ID nIDM OF oDlgVendas ; COLORS nRGB( 000, 000, 000 ), nRGB( 135, 206, 235 ) ; UPDATE RAISED FONT oFont CENTER nIDM++ Next IDCor // NA FUNCAO DE ATUALIZACAO, REPITO O SAY COM O QUE EU QUISER... IF lOrcamentoFornece cCaptionSay := OemToAnsi( [ <F7> Fornece: ] ) ÿ aSaysMoveis[1]:VARPUT( cCaptionSay ) // ID 601 - TOTAL DA COMPRA aSaysMoveis[1]:Refresh() ENDIF // E PODE DAR O REFRESH() TAMBEM. oDlgVendas:Refresh() Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted July 29, 2013 Report Share Posted July 29, 2013 VarPut no say eu nunca usei. Normalmente uso SetText para funcionar. Como utilizo gtwvw com fivewin, quando tento usar o syswait o sistema as vezes trava. Como a Ana falou, use APENAS o SetText no objeto SAY e NÃO use Refresh após isso que funciona, pelo menos é dessa forma que trabalhamos e não temos nenhum problema, como tÃnhamos antigamente quando não usávamos SetText. obs.: não sei pq quando usa settext e refresh, acaba não atualizando, vai entender (use só o settext). Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted July 29, 2013 Report Share Posted July 29, 2013 Faltou o UPDATE na sua linha do SAY @ 2, 8 SAY ocontaa VAR mcontaa OF oDlg5 UPDATE Quote Link to comment Share on other sites More sharing options...
cendon Posted July 29, 2013 Author Report Share Posted July 29, 2013 Obrigado a todos. Mais uma vez mestre João deu a solução, so funcionou com Varput() Bão tbm Obrigado novamente, um abraço Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.