Bom dia pessoal...
É o seguinte, tenho varios gets dentro de um while, cada get desse tem uma funcao no valid, dependendo do resultado desta funcao quero sair deste while... Como ficaria?
É mais ou menos assim:
nGet1 := 0
nGet2 := 0
nGet3 := 0
lOk := .t.
do while lOk
@ 01.01 get nGet1 pict "999" valid Valida(@lOk)
@ 02.01 get nGet1 pict "999" valid Valida(@lOk)
@ 03.01 get nGet1 pict "999" valid Valida(@lOk)
read
enddo
***************************
function Valida(lOk)
*/
/*
Dependendo do resultado o lOk retorna .f.
Entenderam??? ai quero sair do while quando lOk retornar .f.
Obrigado...
Como retornar um valor de uma funcao que esta no valid...
Moderador: Moderadores
- ademilson
- Usuário Nível 2

- Mensagens: 87
- Registrado em: 07 Ago 2007 10:01
- Localização: Maringá
- Contato:
Como retornar um valor de uma funcao que esta no valid...
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Você pode utilizar a função ReadKill(<lExit>). Veja no NG. Se <lExit> for TRUE, o READ será terminado. Exemplo:
Use esse código pra ver como funciona. Se for pressionada a tecla A, seu READ será terminado.
Código: Selecionar todos
function Valida()
local cKey := Upper(Chr(Inkey(0)))
ReadKill(cKey = "A")
return .t.[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
SandroBelarmino
- Usuário Nível 3

- Mensagens: 464
- Registrado em: 04 Set 2007 16:11
- Localização: Pedreira-SP
Basta alterar o valor de lOk (passada por referência) para FALSE na função Valida(), e nela própria executar ReadKill(.T.) pra matar o READ. Dá certinho. O READ morre e o WHILE, tendo lOk=.F., morre também.
Ao invés de usar WHEN, eu preferiria usar a função ReadKill(), já que uma função de validação será executada de qualquer forma. E o código fica mais enxuto.
Ao invés de usar WHEN, eu preferiria usar a função ReadKill(), já que uma função de validação será executada de qualquer forma. E o código fica mais enxuto.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
