Alterar SET CONFIRM dentro do GET

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Alterar SET CONFIRM dentro do GET

Mensagem por acelconsultoria »

Olá, pessoal do fórum.

Gostaria de saber se há uma forma de alterar o SET CONFIRM dentro de uma sequência de GETs.

Por exemplo:

Código: Selecionar todos

Function MeusGets()
Set Confirm On

Codigo := 0
Nome := Space(40)
Cidade := Space(25)
Obs1 := Space(50)
Obs2 := Space(50)
Obs3 := Space(50)

@ 01,01 GET CODIGO
@ 02,01 GET NOME
@ 03,01 GET CIDADE
/// ==> Aqui, eu deveria desligar o SET CONFIRM
@ 05,01 GET OBS1
@ 06,01 GET OBS2
@ 07,01 GET OBS3
READ

... continua ...

Sugestões ???
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Alterar SET CONFIRM dentro do GET

Mensagem por asimoes »

Não sei o que está acontecendo, fiz esse código para tentar uma solução pro SET CONFIRM

Compilei com harbour e não está funcionando o SET CONFIRM ON teclando enter passa pro próximo get,
alguém sabe o que é isso?

Estranho é que compilei este código com clipper (5.2e) e também não funcionou o SET CONFIRM ON

Código: Selecionar todos

FUNCTION MAIN

   SET CONFIRM ON

   CLS

   cGet1:=Space(8)

   cGet2:=Space(8)

   @ 10,00 SAY "GET 1" GET cGet1
   @ 11,00 SAY "GET 2" GET cGet2
   READ

RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Alterar SET CONFIRM dentro do GET

Mensagem por Pablo César »

asimoes escreveu:Compilei com harbour e não está funcionando o SET CONFIRM ON teclando enter passa pro próximo get, alguém sabe o que é isso?
O SET CONFIRM ON tanto no Harbour como no Clipper é para que após o prenchimento durante a digitação do usuário de determinado GET, precise de um ENTER para passar pro próximo GET. Portanto Alexandre, o ENTER sempre será atendido na navegação entre GETs.
acelconsultoria escreveu:Gostaria de saber se há uma forma de alterar o SET CONFIRM dentro de uma sequência de GETs.
Nesse GET que você deseja que o usuário precise dar um ENTER, adicione um WHEN chamando a uma função que dê o SET CONFIRM ON e ainda nesse mesmo GET adicione um VALID que chame uma função onde irá retornar o SET CONFIRM OFF.

Não testei mas creio que irá funcionar, sim !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Alterar SET CONFIRM dentro do GET

Mensagem por asimoes »

Isso mesmo Pablo, tinha me esquecido desse detalhe, preenchendo todo o get só passa para o próximo get teclando enter.

Código: Selecionar todos

FUNCTION MAIN

   CLS

   cGet1:=Space(8)

   cGet2:=Space(8)
   
   cGet3:=Space(8)

   @ 10,00 SAY "GET 1" GET cGet1 WHEN CONFIRMA(.T.)
   @ 11,00 SAY "GET 2" GET cGet2 WHEN CONFIRMA(.F.)
   @ 12,00 SAY "GET 3" GET cGet3 WHEN CONFIRMA(.F.)
   
   READ

RETURN Nil

FUNCTION CONFIRMA(lConfirma)
   IF lConfirma
      SET CONFIRM ON
   ELSE
      SET CONFIRM OFF
   ENDIF
RETURN.T.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Alterar SET CONFIRM dentro do GET

Mensagem por alxsts »

Olá!

Segue outra forma de se obter o resultado desejado:

Código: Selecionar todos

#include "set.ch"

Function MeusGets()

altd()

Set Confirm On

Codigo := 0
Nome := Space(40)
Cidade := Space(25)
Obs1 := Space(50)
Obs2 := Space(50)
Obs3 := Space(50)

@ 01,01 GET CODIGO
@ 02,01 GET NOME
@ 03,01 GET CIDADE   VALID { || ValType( Set( _SET_CONFIRM, .F. ) ) == "L" }  // Desativa o Set Confirm no post block do get (Valid)
/// ==> Aqui, eu deveria desligar o SET CONFIRM
@ 05,01 GET OBS1
@ 06,01 GET OBS2
@ 07,01 GET OBS3

READ
[]´s
Alexandre Santos (AlxSts)
Responder