CLASSE GET

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

Moderador: Moderadores

Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

CLASSE GET

Mensagem por Abel »

Ola, estava estudando o PRG TGETLIST.PRG
e descobri algumas coisas no get ativo

o tamanho do get eu consigo por len(oget:buffer)
a linha do get ativo eu consigo por oget:row
a coluna do get ativo eu consigo por oget:col

o problema é que preciso saber qual o tamanho
do get nos casos em que uso a pict '@S20'
se a variavel tiver 30 caracteres len(oget:buffer)
devolve 30 e nao 20 como eu gostaria.

alguem sabe como posso resolver isso ?

estou alterando o TGETLIST.PRG padrao
do harbour. minha programaçao é console.

desde ja agradeço,
ABEL
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

CLASSE GET

Mensagem por acelconsultoria »

Acredito que será necessário acrescentar um novo método na classe GET, para que você possa obter esse valor.

No código fonte do arquivo "tget.prg" tem um trecho dentro da definição "METHOD picture" da classe GET, onde se realiza a leitura do tamanho do GET que é exibido na tela. Fica armazenado na variável "nDispLen".

Porém, essa variável não é utilizada para ser "retornável".
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

CLASSE GET

Mensagem por JoséQuintas »

oGet:VarGet()
oGet:VarPut()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

CLASSE GET

Mensagem por JoséQuintas »

Só comentário:

Não sei isso de cabeça. É que lembrei que uso na minha calculadora, pra obter valor da tela, e devolver resultado.

Código: Selecionar todos

METHOD LoadSaveValue( lSave ) CLASS CalculatorClass

   LOCAL oGet

   hb_Default( @lSave, .F. )
   oGet := GetActive()
   IF oGet != NIL
      IF oGet:Type == "N"
         IF lSave
            oGet:varPut( Val( ::cValueDisplay ) )
         ELSE
            ::cValueDisplay = ValToString( oGet:varGet() )
         ENDIF
      ENDIF
   ENDIF

   RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

CLASSE GET

Mensagem por alxsts »

Olá!

Verifique se na picture do get existe a string "@S".

Código: Selecionar todos

If At ( "@S", oGet:picture ) > 0
   // Pegar os caracteres numéricos seguintes
Endif
[]´s
Alexandre Santos (AlxSts)
Responder