1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida simples (penso) em VB

Discussão em 'Programação' iniciada por NoNick, 7 de Fevereiro de 2007. (Respostas: 6; Visualizações: 786)

  1. NoNick

    NoNick Suspenso

    Bem, estou a fazer um programa simples e tenho aqui um problema.
    Tenho 30 labels, uma text box e um command button (e outras que não são relevantes)
    Eu queria fazer uma coisa deste género. Meto um número de 1 a 30 na text box, carrego no command e aquilo muda a caption da label X, onde X é o número que meti na text box. Ora, como era um pouco chato criar um If para cada número possível, não existe uma maneira mais rápida?

    Não é bem isto o que estou a fazer, mas se me esclarecerem isto adapto ao que quero. :)

    Se não perceberem digam, eu tento explicar melhor.

    Obrigado.
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Se tiveres as labels como
    Label1, Label2, Label3, Label4
    terás de fazer IF's. Sei que há uma alternativa, não me lembro como é, mas lembro-me que não era propriamente boa práctica.

    Transforma isso tudo em UMA ARRAY de labels, com 30 labels.
    Em vez de Label1, Label2 e Label3, chama-lhes a todas Label e muda o Index para 1, 2 e 3 (resultado: Label(1), Label(2) e Label(3) ).

    Aí podes fazer
    For i = 1 to 30
    Label(i).Caption = Text1.Text
    Next i

    ou o que quiseres delas :)

    Cumps [[[[[[]]]]]]
    angelofwisdom
     
  3. NoNick

    NoNick Suspenso

    Já tava a ver que tinha de ir meter umas 500 linhas de código, tudo repetido lol.
    Esse código mudava-me as captions todas ao mesmo tempo, mas já resolvi isso.

    Obrigadão. :-D
     
  4. NoNick

    NoNick Suspenso

    Pois, agora surgiu mais um "pequeno" problema.

    Alguém se sabe dizer como fazer uma condição deste género?

    7 <= Text1.text <= 8

    neste momento, tenho isto:

    Mas isto funciona se os 2 primeiros factores estiverem certos, independentemente de 3º estar ou não. Se puser por exemplo desta maneira

    Já so funciona com nºs maiores ou iguais a 7...




    Soluções? :s

    Thanks.
     
    Última edição: 8 de Fevereiro de 2007
  5. HecKel

    HecKel The WORM

    Não me recordo como se faz isso em visual basic, mas pesquisares nos milhares de sites com ajudas também não te faz mal :P

    Aqui fica a sugestão, procura por conversão de String -> Inteiro ;)

    Estás a comparar uma string com um inteiro, salvo erro isso vai comparar o código ascii, logo é muito provável que obtenhas resultados errados ;)

    abraços, HecKel
     
  6. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    a <= b <= c
    é equivalente a uma união de
    b >= a e b <= c

    logo

    If Text2.Text = "12" And Combo1.Text = "mas" And (Val(Text4.Text) >= 7 And Val(Text4.Text) <= 8) Then

    Val() corrige o que o HecKel disse, e com razão. Estás a comparar o TEXTO Text4 com os NÚMEROS 7 e 8. Para transformares Text4 em números, uma das funções existentes para o processo é o Val(). Também tens i CStr, CInt, CLng, CCur... dependendo se é para String, Integer, Long, Currency... (para String não será, já que o Text da TextBox é uma String).

    Cumps [[[[[[]]]]]]
    angelofwisdom
     
  7. NoNick

    NoNick Suspenso

    Funcionou, obrigado mais uma vez :)

    Penso que já n devem surgir erros daqui para a frente.
     

Partilhar esta Página