Página 1 de 1

Como usar a cláusula when num textbox?

Enviado: 17 Ago 2012 11:30
por Paulao
Bom dia a todos do forum, como fazer para habilitar ou desabilitar um texbox depedendo de uma condição?

no clipper eu faço assim

@row(),col() get pgr1_fic pict"99999" when granomad->gr1_gra <> space(03)

Uitlizo a minigui extended.

Obrigado a todos

Como usar a cláusula when num textbox?

Enviado: 17 Ago 2012 11:36
por Pablo César
Bom eu colocaria essa sua condição "granomad->gr1_gra <> space(03)" no ONGOTFOCUS do TextBox entre parêntesis. Ou então colocaria após a edição do "gr1_gra" para desabilitar o proximo TextBox.

Para desabilitar o TextBox pode utilizar, por exemplo:

Modi_Stru.Text_1.Enabled:=.f. (para deixar desabilitado, ficando em cor cinza apenas)

ou

Modi_Stru.Text_1.Hide (para desaparecer)

Para exemplificar melhor, você poderia colocar parte do seu código, assim aplicávamos nele as alterações cabíveis.

Como usar a cláusula when num textbox?

Enviado: 17 Ago 2012 12:06
por Paulao
Obrigado Pablo pela pronta resposta.
Tenho um sistema para industria de calçados, na tela de cadastro dos itens do pedido eu tenho 20 textbox para colocar a quantidade de pares para os numeros da grade do sapato.
Ocorre que na maioria das vezes nao se necessita preencher todos os textbox.
Exemplificado eu tenho uma grade assim 33, 34, 35, 36, 37, 38, 39, 40, veja a grade tem 8 numeros diferentes, mas na tela de cadastro de itens do pedido eu tenho 20 textbox para colocar a quantidade de pares, quando eu vou cadastrar um item do pedido na grade acima vou usar apenas os oito primeiros textbox, os outros nao serão utillizados.
Necessito que estes texbox que nao forem utilizados fiquem desativados ou mesmo invisiveis, ocorre que o sistema so vai saber quais os textbox que serao ativados quando eu escolher o produto.
Veja parte do codigo

Código: Selecionar todos

     *__________________
      DEFINE LABEL lbl_gr1_gra
         ROW    150
         COL    130
         WIDTH  40
         HEIGHT 20
         VALUE lbg_gr1_gra
         FONTNAME "Tahoma"
         FONTSIZE 10
         FONTCOLOR _CINZA
      END LABEL
      DEFINE TEXTBOX oGet_gr1_fic
         ROW    170
         COL    130
         WIDTH  050
         HEIGHT 020
         FONTNAME "Tahoma"
         FONTSIZE 10
         TOOLTIP "Digite o numero correspondente a esta posição na grade"
         INPUTMASK '99999'
         NUMERIC .T.
         VALUE x_gr1_fic
      END TEXTBOX
      *__________________
Os Label lbl_gr1_gra a lbl_gr20 é definido de acordo com a grade do produto do item em questão utilizo uma funcao que apos escolhido o produto busca no arquivo de grades de produto a grade correspondente e poe nos labels lblgr1_gra ate lbl_gr20_gra os numeros correspondentes da grade

Como usar a cláusula when num textbox?

Enviado: 17 Ago 2012 12:38
por Pablo César
Pelo que me parece esse seu problema poderia ser resolvido utilizando outra forma de exibição/edição dos campos, atendendo o número de pares conforme a demanda. Para isso eu utilizaria um Grid ou Browse (TBrowse no Clipper) e assim adicionava em linha conforme preciso lançar o número de cada par, claro que teria que fazer uma função de controle para que o número do par não seja repetido ao adicionar registro. Assim iria ficar mais clean a exibição dos campos.

Se não for essa, disponibilize uma tela do seu atual sistema para conseguir entender melhor.