Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB6] convivenza di più timer

    codice:
            Timer_lisp.Enabled = True
            Timer_lisp.Interval = 65000
            Timer_asset.Enabled = True
            Timer_asset.Interval = 20000
            TimerControlloAutocad.Enabled = True
            TimerControlloAutocad.Interval = 1000
    ho l'impressione che attivando questi timer in sequenza si "annullino" l'uno con l'altro.....
    ovvero mi trovo ad avere (provando la procedura con F8) solo l'ultimo timer che funziona, mentre gli altri.... boh????
    "ci vorrebbero anche più persone come quaestio (a reb verrà un brivido)" wallrider, 22/10/2012

    "Se hai una vita di merda facebook non può essere molto meglio...". kalosjo, 16/10/2012

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    I timer non si annullano a vicenda. E' probabile che, da qualche parte nel codice, vi sia un'istruzione che provvede a disabilitarli in qualche modo.

    Cos'hanno in comune i timer?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    mah... ho cercato se da qualche parte avessi scritto enabled=false.... ma niente....

    che cosa intendi per "cosa hanno in comune?"
    "ci vorrebbero anche più persone come quaestio (a reb verrà un brivido)" wallrider, 22/10/2012

    "Se hai una vita di merda facebook non può essere molto meglio...". kalosjo, 16/10/2012

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da quaestio
    che cosa intendi per "cosa hanno in comune?"
    Mi riferivo ad operazioni dell'uno che coinvolgono, direttamente o indirettamente, gli altri.

    Se non vi sono istruzioni che disabilitano i timer, allora probabilmente non vengono abilitati.

    Controlla attentamente perché sento un forte odore di classica "svista"...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non puoi provare 3 timer in modalita' debug ... Dato che l'ultimo e' quello che scatta piu' velocemente, ti sembrera' che quello sia l'unico attivo ...

    Quale e' il problema? Mostra il codice dei relativi eventi timer ... e' in quel codice il malfunzionamento ...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da oregon
    Non puoi provare 3 timer in modalita' debug ... Dato che l'ultimo e' quello che scatta piu' velocemente, ti sembrera' che quello sia l'unico attivo ...
    Come mai questo comportamento da VB6? Quando utilizzo Timer in Delphi, molto raramente per la verità, il debug funziona correttamente, in quanto si tratta in fondo di messaggi inviati all'applicazione, così come avverrebbe per il click di un pulsante.
    :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Originariamente inviato da alka
    Mi riferivo ad operazioni dell'uno che coinvolgono, direttamente o indirettamente, gli altri.

    Se non vi sono istruzioni che disabilitano i timer, allora probabilmente non vengono abilitati.

    Controlla attentamente perché sento un forte odore di classica "svista"...
    appunto..... siccome sulle sviste sono da guiness......

    ce n'è solo uno che si autodisabilita al verificarsi di una condizione......

    o può essere che uno entra in loop e non fa funzionare gli altri? d'altra parte i timer non sono multi3ding.... o no?
    "ci vorrebbero anche più persone come quaestio (a reb verrà un brivido)" wallrider, 22/10/2012

    "Se hai una vita di merda facebook non può essere molto meglio...". kalosjo, 16/10/2012

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da quaestio
    ce n'è solo uno che si autodisabilita al verificarsi di una condizione......
    Allora comincio a nutrire qualche sospetto... mettici un breakpoint.

    Originariamente inviato da quaestio
    o può essere che uno entra in loop e non fa funzionare gli altri? d'altra parte i timer non sono multi3ding.... o no?
    Se un Timer entra in loop, di norma non risponde nemmeno più l'applicazione in quanto impegnata a gestire il messaggio corrispondente e impossibilitata a gestire quelli pendenti (di refresh, di clic, ecc.).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Originariamente inviato da oregon
    Non puoi provare 3 timer in modalita' debug ... Dato che l'ultimo e' quello che scatta piu' velocemente, ti sembrera' che quello sia l'unico attivo ...

    Quale e' il problema? Mostra il codice dei relativi eventi timer ... e' in quel codice il malfunzionamento ...
    codice:
    Private Sub Timer_asset_Timer()
    On Local Error Resume Next
    Dim hWindow As Long
    Dim hThread As Long
    Dim hProcess As Long
    Dim lProcessId As Long
    Dim lngResult As Long
    Dim lngReturnValue As Long
    Dim intercetta As String
    
    intercetta = nomefinestra
    hWindow = FindWindow(vbNullString, intercetta)
    If hWindow > 0 Then
        SendKeys "{Esc}", True
        logga "Chiusa finestra " & intercetta
    End If
    
    End Sub
    "ci vorrebbero anche più persone come quaestio (a reb verrà un brivido)" wallrider, 22/10/2012

    "Se hai una vita di merda facebook non può essere molto meglio...". kalosjo, 16/10/2012

  10. #10
    Originariamente inviato da oregon
    Non puoi provare 3 timer in modalita' debug ... Dato che l'ultimo e' quello che scatta piu' velocemente, ti sembrera' che quello sia l'unico attivo ...

    Quale e' il problema? Mostra il codice dei relativi eventi timer ... e' in quel codice il malfunzionamento ...
    codice:
    Private Sub TimerControlloAutocad_Timer()
    'questa procedura controllo che non ci sia una "istanza interna" di acad lanciato
    'ma che questo non sia in funzione = chiusura accidentale o maldestra
    Dim AcadProcess As Long
    Dim nfile As Integer
    
    DoEvents
    
    If autocad_lanciato = True Then
        AcadProcess = GetProcessId("acad.exe")
        If AcadProcess = 0 Then
            logga "Probabile chiusura accidentale di acad.exe esterna alla procedura. Forzo il lancio"
            nfile1 = FreeFile
            If Dir(App.Path & "\controllo.txt") <> "" Then
                Open App.Path & "\controllo.txt" For Input As #nfile1
                Line Input #nfile1, riga
                Close #nfile1
                RiscriviFileScr (riga)
            End If
            LanciaAutocad
        End If
    End If
    
    End Sub
    "ci vorrebbero anche più persone come quaestio (a reb verrà un brivido)" wallrider, 22/10/2012

    "Se hai una vita di merda facebook non può essere molto meglio...". kalosjo, 16/10/2012

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.