COMANDO SELECT CASE NAO ESTA FUNCIONANDO
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!
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!
seu select case é muito louco
o select case deveria ser algo assim
mas para o seu caso acredito que o if tem função melhor
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
Tente assim vê se você consegue o que esta precisando
Espero ter ajudado, pois não realizei testes
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
Que eu saiba select case não pode ter condição.
no maximo: Select Case Label5.Left
no maximo: Select Case Label5.Left
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
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
muito obrigado pessoal pelas dicas, vou por em pratica e posto o resultado aqui em breve!
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.
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