Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida com formula


Roberto Carvalho

Pergunta

Estou fazendo um programa para controle de porta paralela, mas estou com duvida pra fazer o seguinte.

meu programa tem 8 labels sendo elas:

bt(0),bt(1)...até...bt(7)

quando o byte que corresponde a cada label esta ativado na porta paralela a label fica com o backcolor vermelho e quando não está fica verde.

o envio de bytes é feito da seguinte maneira.. quando a pessoa clica no bt(0) por exemplo acontece isso:

Private Sub bt(0)_Click()

conta = Inp(Val("&H379"))

If bt(0).BackColor = &HFF00& Then

Out Val("&H378"), Val(conta + 1)

bt(0).BackColor = &HFF&

Else

Out Val("&H378"), Val(conta - 1)

bt(0).BackColor = &HFF00&

End If

End Sub

Reparem que eu enviei 1 byte

O valor de cada label é o seguinte?

bt(0)=1 byte

bt(1)=2 byte

bt(2)=4 byte

bt(3)=8 byte

bt(4)=16 byte

bt(5)=32 byte

bt(6)=64 byte

bt(7)=128 byte

por exemplo se eu der um click nas labels bt(0) que vale 1 byte e bt(1) que vale 2 bytes minha resposta conta = Inp(Val("&H379")) seria de 3 bytes e as 2 duas labels estariam com o backcolor vermelho,, agora de eu clicar novamente na bt(0) ele vai pegar a resposta que seria 3 e subtrair por 1 e a resposta que vai ficar 2,, ou seja,, só o bt(1) está ativo ou seja vermelho.

Minha pergunta é o seguinte como fazer no load no formulario uma função que pegue a reposta de quantos bytes estão sendo utilizados e deixe-os com o background vermelho sabendo que a soma de todos os bytes utilizados é 255 e 0 qaundo nenhum esta sendo utilizado.

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Deixa eu ser um pouco mais claro...

Na verdade o que quero é o seguinte.. vou obter a resposta da porta paralela que é um numero que vai de 0 à 255.

o quero é o seguinte dividir o numero que eu obter em partes,, ou seja tenho os seguintes numeros:

1,2,4,8,16,32,64 e 128. Se a resposta da porta paralela for 129.. então quero que ele encontre as partes segundo os meus numeros ou seja, 128 e 1. Se o numero for 96 ele deve obter 32 e 64.... se for 10 ele deve obter 2 e 8..

Espero ter sido mais claro..

se alguém puder me ajudar.. agradeço desde já.

Link para o comentário
Compartilhar em outros sites

  • 0

É só usar o operador AND, exemplo:

Dim bits As New Collection
    
possíveis = Array(1, 2, 4, 8, 16, 32, 64, 128)
valor = 129
    
For Each n In possíveis
    If n And valor Then
        bits.Add n
    End If
Next n
    
For Each n In bits
    MsgBox n
Next

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...