Página 1 de 1

get com menu

Enviado: 08 Abr 2010 22:21
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 :)

Re: get com menu

Enviado: 08 Abr 2010 23:54
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" }

Re: get com menu

Enviado: 09 Abr 2010 00:27
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?

Re: get com menu

Enviado: 09 Abr 2010 00:34
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
// -------------------------------------------------------------------------------------

Re: get com menu

Enviado: 09 Abr 2010 01:14
por Acéfalo Dias
obrigado pela boas-vindas, Alex.
funcionou aqui com seu exemplo.
valeu :)