COMANDO SELECT CASE NAO ESTA FUNCIONANDO

MARCOSCAMPOS 03/12/2013 18:14:27
#431721
pessoal, boa tarde

estou usando o comando select case em meu programa porem nao esta funcionando direito, o objeto em questao nao esta obedecendo as condiçoes dadas:

no codigo abaixo tudo esta executando perfeito porem o meu objeto em movimento ( label5 ) nao poderia executar as condiçoes abaixo estando na tela posiçao left < 9000 e maior que 9600 ou seja, so poderia executar as condiçoes estando entre 9000 e 9600 left, porem esta executando normalmente mesmo fora da tolerancia passada.


vejam o codigo abaixo:

Private Sub Timer26_Timer()

Select Case Label5.Left > 9000 < 9600


Case Label5.Top = Label6.Top And Label5.Left = Label6.Left
Timer26.Enabled = falce
Timer41.Enabled = True
Label15.ForeColor = &HC0C0&
Label5.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1934 NO ILS FINAL 09 DIREITA[Ô]

Case Label5.Top = Label8.Top And Label5.Left = Label8.Left
Timer26.Enabled = falce
Timer41.Enabled = True
Label15.ForeColor = &HC0C0&
Label5.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1934 NO ILS FINAL 09 DIREITA[Ô]

Case Label5.Top = Label9.Top And Label5.Left = Label9.Left
Timer26.Enabled = falce
Timer41.Enabled = True
Label15.ForeColor = &HC0C0&
Label5.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1934 NO ILS FINAL 09 DIREITA[Ô]


Else

Label15.Left = Label15.Left + 1
Label15.Top = Label15.Top - 1
Label5.Left = Label5.Left + 1
Label5.Top = Label5.Top - 1

End Select


End Sub


alguem pode me ajudar!
MARCELO.TREZE 03/12/2013 19:08:55
#431722
seu select case é muito louco

o select case deveria ser algo assim

Select Case Label.Left

Case 9000 to 9600

faz o que você deseja

End Select



mas para o seu caso acredito que o if tem função melhor

FILMAN 03/12/2013 19:08:56
#431723
Tente assim vê se você consegue o que esta precisando

Select Case Label5.Left
Case 9000 To 9600
Select Case Label5.Top
Case Label6.Top
If Label5.Left = Label6.Left then
Timer26.Enabled = falce
Timer41.Enabled = True
Label15.ForeColor = &HC0C0&
Label5.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1934 NO ILS FINAL 09 DIREITA[Ô]
End If

Case Label8.Top
If Label5.Left = Label8.Left then
Timer26.Enabled = falce
Timer41.Enabled = True
Label15.ForeColor = &HC0C0&
Label5.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1934 NO ILS FINAL 09 DIREITA[Ô]
End If

Case Label9.Top
If Label5.Left = Label9.Left then
Timer26.Enabled = falce
Timer41.Enabled = True
Label15.ForeColor = &HC0C0&
Label5.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1934 NO ILS FINAL 09 DIREITA[Ô]
End If

End Select

Case Else

Label15.Left = Label15.Left + 1
Label15.Top = Label15.Top - 1
Label5.Left = Label5.Left + 1
Label5.Top = Label5.Top - 1

End Select




Espero ter ajudado, pois não realizei testes
NILSONTRES 04/12/2013 09:39:44
#431735
Que eu saiba select case não pode ter condição.
no maximo: Select Case Label5.Left
ALVAROVB2009 04/12/2013 10:02:02
#431736
Resposta escolhida
MARCOSCAMPOS Coloque um IF antes do seu select

IF Label5.Left >= 9000 and Label5.Left <= 9600 then
seu case
else
Label15.Left = Label15.Left + 1
Label15.Top = Label15.Top - 1
Label5.Left = Label5.Left + 1
Label5.Top = Label5.Top - 1
end if

Assim vc executa seu case garantindo sempre que esteja no intervalo
MARCOSCAMPOS 04/12/2013 10:43:59
#431740
muito obrigado pessoal pelas dicas, vou por em pratica e posto o resultado aqui em breve!
MARCOSCAMPOS 04/12/2013 13:23:07
#431749
pessoal, fiz todos os testes e consegui fazer funcionar com comando [Ô] IF [Ô]

ASSIM :
Private Sub Timer35_Timer()

If Label10.Left > 9000 And Label10.Left < 9700 Then

If Label10.Top = Label6.Top Or Label10.Top = Label8.Top Or Label10.Top = Label9.Top Then
Timer35.Enabled = falce
Timer42.Enabled = True
Label20.ForeColor = &HC0C0&
Label10.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1938 NO ILS FINAL 09 DIREITA[Ô]
End If

If Label10.Left = Label6.Left Or Label10.Left = Label8.Left Or Label10.Left = Label9.Left Then
Timer35.Enabled = falce
Timer42.Enabled = True
Label20.ForeColor = &HC0C0&
Label10.BackColor = &HC0C0&
Text14.Text = [Ô]VARIG-1938 NO ILS FINAL 09 DIREITA[Ô]
End If


End If

Label20.Left = Label20.Left + 1
Label15.Top = Label20.Top + 1
Label10.Left = Label10.Left + 1
Label10.Top = Label10.Top + 1


End Sub


Muito obrigado pela ajuda de todos!
estou encerrando o topico.
Tópico encerrado , respostas não são mais permitidas