Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB6] Funzione da stoppare

    Ho una Funzione che potrebbe richiedere parecchio tempo e che quindi dovrei poter fermare in qualsiasi momento.
    Ho creato due pulsanti START e STOP con una variabile che testo nella funzione per interrompere la funzione nel caso venga premuto STOP.
    Il fatto è che non riesco piu' a premere il pulsante che risulta disattivato come tutta la form (anche il pulsante di chiusura).
    Dove è l'inghippo.
    Vorrei che solo il pulsante STOP sia abilitato a ricevere il click del mouse che naturalmente dovrebbe ridiventare quello di default quando si trova sopra il pulsante (in esecuzione è la classica clessidra).
    Spero di essere stato chiaro anche se un pò lunghetto.
    Saluti MARCELLO

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    567
    dim stop as boolean

    Function ...
    do until stop=true
    ...
    DoEvents (o DoEvent? boh, prova)
    loop
    end Function

    Sub doStop()
    stop=true
    End sub
    "Come vedi tutto è usuale, solo che il tempo chiude la borsa e c'è il sospetto che sia triviale l'affanno e l'ansimo dopo una corsa, l'ansia volgare del giorno dopo, la fine triste della partita, il lento scorrere senza uno scopo di questa cosa che chiami vita."

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220
    ciao sono nuovo finalmente ho trovato una domanda che so rispondere.
    dunque dipende dalla funzione ma siccome quasi sicuramente si tratta di un ciclo ci devi scrivere dentro la funzione DoEvents che ogni volta che il ciclo si ripete vede se ci sono azioni da parte dell'utente. siccome però devi solo intercettare eventi del mouse o della tastiera è meglio se fai
    If GetInputState() then DoEvents
    con l'API Declare Function GetInputState Lib "User32" Alias "GetInputState" () as Long così riduci l'affaticamento del processore.
    ciao

  4. #4
    Grazie per le risposte proverò ad intercettare i comandi da tastiera e mouse.
    Infatti solo alla fine della funzione ricevo i comandi del mouse o della tastiera.
    Credo che forse dovrei creare un nuovo thread con la funzione ma non sò come fare in VB.
    HelpMe.
    Salute Marcello.

  5. #5
    all'interno della tua funzione devi mettere qualche "DoEvents". solo cosi' i click del mouse verranno sentiti dal sistema.

  6. #6
    Grazie optime. Risposta Accettata.
    Ora per perfezionare il tutto vorrei che anche il cursore quando si trova sopra il bottone "Annulla", (l'unico che lasci enable), dalla classica clessidra ritorni ad essere la freccia classica.
    Si può fare !!! Certo che si.
    Ma come ?

    Grazie a tutti Marcello

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.