get com menu

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Acéfalo Dias
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 08 Abr 2010 22:14
Localização: Brazil

get com menu

Mensagem por Acéfalo Dias »

oi pessoal!
tem como quando o usuario chegar no get ser apresentado um menu de opcao?
se sim, qtas opcoes no maximo.

valeu :)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: get com menu

Mensagem por sygecom »

Qual versão do seu Clipper ?

Se for Clipper 5.3 pode usar como exemplo abaixo que foi pego do NG:

Código: Selecionar todos

nColor := 1     //default to the first item.
@ 5, 20, 8, 28 GET nColor LISTBOX { "Red", Green", "Blue" }
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Acéfalo Dias
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 08 Abr 2010 22:14
Localização: Brazil

Re: get com menu

Mensagem por Acéfalo Dias »

a versão do Clipper que me foi passada é a 5.2e.
preciso colocar exatamente uma listbox na hora da edicao do get e se der, dependendo da propria opcao escolhida na {}, desabilitar ou preencher no automatico opcoes de gets abaixo.
tem algo parecido na versao 5.2e?
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: get com menu

Mensagem por alxsts »

Olá!

Seja bem-vindo ao fórum, Acéfalo!

Com certeza é possível. Você poderá se valer da cláusula WHEN (get:preblock) do "objeto" Get e montar um menu baseado em array. Neste caso, você poderá fornecer 4096 opções ao usuário.

Exemplo:

Código: Selecionar todos

   #include   "Box.Ch"

   LOCAL cSexo := "M", GetList := {}

   CLS

   @ 10,10 Say "Sexo" Get cSexo WHEN { |oGet| Valtype( ValidaSexo( oGet ) ) = NIL }

   ReadModal( GetList ) ; GetList := {}

   RETURN
// -------------------------------------------------------------------------------------
   FUNCTION ValidaSexo( oGet )

   LOCAL nTop, nLeft, nBottom, nRight, aOptions, nLen := 0

   aOptions := { " Masculino ", " Feminino  " }
   nTop := oGet:row + 1
   nLeft := oGet:col + 2
   nBottom := nTop + 3

   AEval( aOptions, { |e| nLen := If( Len( e ) > nLen, Len( e ), nLen ) } )

   nRight := nLeft + nLen + 2

   DispBox( nTop, nLeft, nBottom, nRight, B_SINGLE + " " )

   nLen := AChoice( nTop + 1, nLeft + 1, nBottom -1, nRight - 1, aOptions, .T. )

   IF nLen > 0
      oGet:varput( Left( LTrim( aOptions[ 1 ] ), 1 ) )
      oGet:updateBuffer()
      @ oGet:row, oGet:col + 1 Say " -" + aOptions[ nLen ]
   ENDIF

   RETURN nLen
// -------------------------------------------------------------------------------------
[]´s
Alexandre Santos (AlxSts)
Acéfalo Dias
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 08 Abr 2010 22:14
Localização: Brazil

Re: get com menu

Mensagem por Acéfalo Dias »

obrigado pela boas-vindas, Alex.
funcionou aqui com seu exemplo.
valeu :)
Responder