Ciclo com determinado de tempo (VB)

Roberto_TGEI09

Power Member
Boas,

eu estava aqui a fazer a minha PAP (projecto final de curso) em VB. E estou com uma duvida, como criar uma ciclo que dure um determinado tempo???

Por exemplo durante 10 segundos . . . vai fazer sempre o mesmo ciclo...

Agradecia sugestões xD

Obrigado..
 
Não consigo perceber ao certo o que queres, mas uma coisa que podes fazer é um While var... Wend, sendo que a variável global "var" começa por ser True, e assim que ele entra no ciclo activa um Timer que, terminados os 10 segundos, faz com que "var" seja False.
Algo deste género:
Código:
x = True
Timer1.Interval = 10*1000
Timer1.Enabled = True
While x
   'código
Wend

E no Timer1_Timer(), o que fazes é
Código:
x = False
Timer1.Enabled = False

*Acho* que é isto.
 
Também podes usar um StopWatch:

Código:
Public Sub FuncaoTemporizada()
 
     Dim St As New StopWatch
     St.Start()
 
     While St.ElapsedMiliseconds <= 10000
          'O código que queres que seja executado durante 10 segundos.
     End While
 
     St.Stop()
 
End Sub
 
Codigo é em VB6 . . . Quando iniciei, disseram em ser o mais facil, para iniciantes =)
e comprei um livro para me ir orientado, e o livro também é de VB6...

Obrigado =)

Ainda nao vou aplicar, o codigo, estou um bocado atrofiado com a escola, mas assim que colocar, logo digo, se resultou!

Bastante agradecido xD
 
Não consigo perceber ao certo o que queres, mas uma coisa que podes fazer é um While var... Wend, sendo que a variável global "var" começa por ser True, e assim que ele entra no ciclo activa um Timer que, terminados os 10 segundos, faz com que "var" seja False.
Algo deste género:
Código:
x = True
Timer1.Interval = 10*1000
Timer1.Enabled = True
While x
   'código
Wend

E no Timer1_Timer(), o que fazes é
Código:
x = False
Timer1.Enabled = False

*Acho* que é isto.






o meu projecto é acender vários leds,
tipo eu carrego num botao, e ele vai piscar durante 10 segundos, e depois apaga.
se eu voltar a carregar no botao volta a piscar e depois fica ligado.

é esse o meu objectivo para já.....

Agradeço ideias...
xD

e soluções... =)

Desculpem demorar a responder... mas só agora tenho net novamente! =)

[ eu ja sei como acender e apagar leds, ja tenho o codigo =) ]
 
Última edição:
Então...
- Quando clicas no botão, acendes o led e fazes com que o Timer1.Interval seja 10*1000 e Timer1.Enabled = True
- No Timer1_Timer, o que ele faz é apagar o led e Timer1.Enabled = False.

Isto faz com que ele acenda no início e apague no fim dos 10 segundos.

Se quiseres que ele pisque ao longo dos 10 segundos, penso que consigas adaptar isto, porque só tens de mexer no Timer1.Interval e no Timer1.Enabled e matemática básica ;)
 
dentro de um timer em que o intervalo é de 1000 fazes o seguint:
dim x as integer
x=0

do
x+1
(aqui metes o codigo necessário para ver se o "x" é par ou impar)

if x="par" then

(código para acender o led)

else

(código para desligar o led)

loop until (x=10)

*********************************
penso que é isto que queres o código para saber se o numero é par ou impar é facil encontras na net ou até num livro qualquer de programação. Em principio penso que é uma funçao.

Mas o que o programa deverá fazer é: quando o x for par acende o led quando for impar apaga.

cumps
 
Ou, a cada timer, muda o estado do led :P
X é par se o resto da divisão de X por 2 for 0. Ou seja,
Código:
If x Mod 2 = 0 Then Msgbox "x é par" Else Msgbox "x é ímpar"
 
Ou, a cada timer, muda o estado do led :P
X é par se o resto da divisão de X por 2 for 0. Ou seja,
Código:
If x Mod 2 = 0 Then Msgbox "x é par" Else Msgbox "x é ímpar"

dentro de um timer em que o intervalo é de 1000 fazes o seguint:
dim x as integer
x=0

do
x+1
(aqui metes o codigo necessário para ver se o "x" é par ou impar)

if x="par" then

(código para acender o led)

else

(código para desligar o led)

loop until (x=10)

*********************************
penso que é isto que queres o código para saber se o numero é par ou impar é facil encontras na net ou até num livro qualquer de programação. Em principio penso que é uma funçao.

Mas o que o programa deverá fazer é: quando o x for par acende o led quando for impar apaga.

cumps


mas isso vai fazer com que ele durante esse intervalo fique a piscar?

Eu vou aplicar isso segunda á noite... logo vos digo se funcionou . . .

xD

Obrigaddoooo!!!
 
Última edição pelo moderador:
Olá . . .
Pessoal eu gostava de vos dar uma imagem do meu projecto, para voces entender melhor. o que estou a fazer.
Mas nao sei como colocar aqui imagens? onde vou posta-las para depois abrir um link para aqui?
AGuardo as vossas respostas...


Obrigadoo.....
 
este tópico para saberes alguns sites onde as podes alojar. Depois, carregas em
insertimage.gif
aqui no fórum e colocas o URL para a imagem aparecer.
Cuidado com as regras das imagens ;) não podes pôr imagens muito grandes.
 
Oi...

Obrigadao..

acho que ja consegui...

http://www.2and2.net/files/49a5700c856da.bmp

ai está a form, que mais trabalho me tem dado...

BAH...

isso é um gestor de segurança de um edificio, onde será simulado numa maquete através de o cabo paralelo.
Ainda nao testei, o ciclo, por falta de material, mas já avancei um pouco, ja tenho temporizador.
Os modos de segurança predefinidos, são definidos por mim, eu é que digo, o que activas e desactivar.
Na parte que diz manual são definidos pelo utilizador.

Penso ter sido claro xD

gostava de ideias....
criticas....
 
oi...

como eu consigo fazer o seguinte:

Carregar num botão
e vai dizer tudo que tenho selecionado (checks) numa msgbox, e ainda vai dizer a que horas o temporizador vai activa-las, como podem ver na imagem, no meu post anterior?
 
Isso depende muito da forma como fizeres as coisas.
Uma forma de ver o estado de TODAS as checkboxes de um form é algo deste género:
Código:
Private Sub Command1_Click()
    Dim Output As String
    Dim Object As Control
 
    For Each Object In Form1
        If TypeOf Object Is CheckBox Then
            Output = Output & Object.Caption & ": " & IIf(Object.Value = vbChecked, "Checked", "Not checked") & vbCrLf
        End If
    Next Object
 
    MsgBox Output
End Sub

Quanto às horas a que o temporizador vai activá-las, depende: como é que programaste o temporizador?
 
Isso depende muito da forma como fizeres as coisas.
Uma forma de ver o estado de TODAS as checkboxes de um form é algo deste género:
Código:
Private Sub Command1_Click()
    Dim Output As String
    Dim Object As Control
 
    For Each Object In Form1
        If TypeOf Object Is CheckBox Then
            Output = Output & Object.Caption & ": " & IIf(Object.Value = vbChecked, "Checked", "Not checked") & vbCrLf
        End If
    Next Object
 
    MsgBox Output
End Sub
Quanto às horas a que o temporizador vai activá-las, depende: como é que programaste o temporizador?


o temporizador, utilizei um timer

e fiz o seguinte:
Código:
Private Sub Temporizador1_Timer()
'lb_h = horas no pc
'lb_m = minutos no pc
'txh1= horas definidas pelo utilizador
'txh1 = minutos definidos pelo utilizador
 
If (lb_h.Caption = TxH1.Text) And (lb_m.Caption = TxM1.Text) Then
If (Combo1.Text = "Ligar") Then
Label3.Caption = "Temporizador Desligado"
Label13.Caption = ""
Exit Sub
Else
If (Combo1.Text = "Desligar") Then
Label8.Caption = "Temporizador Desligado"
Label7.Caption = ""
'out1 = out1 And (255 - 2)
'Out 888, out1
'sts1 = 0
End If
End If
End If
End Sub
 
Última edição pelo moderador:
Back
Topo