Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    87

    evento activated

    Ciao a tutti, ho un problema con l'evento form activated: in vb6 tale evento veniva scatenato dopo l' evento load quando la form otteneva il focus.
    Con il .net tale evento viene ancora scatenato ma viene richiamato addirittura penso 10 volte di seguito. Io ho bisogno di inserire codice in tale evento ma quando il programma viene aperto questo si scatena più volte e non capisco il motivo.
    Se qualcuno a qualche informazione da darmi lo ringrazio ciao.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    L'evento Activated viene scatenato ogni volta che il form ottiene il focus, non una volta di più, non una volta di meno.

    Evidentemente, il modo in cui hai strutturato la tua applicazione fa sì che il form perda e riceva ripetutamente il focus.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    87
    Sono sicuro perchè ho provato a creare un progetto totalmente nuovo poi ho messo nell' evento activated della form una msgbox e lanciando l'esecuzione questa viene richiamata ripetutamente (ho testato anche con il debug che l'evento viene richiamato più volte).
    Teoricamento la msgbox avrebbe dovuto essere richiamata una volta sola, quando come dici giustamente tu la form ottiene il focus, ma così non è.
    Hai delle idee in proposito....
    ciao

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da pol86
    Sono sicuro perchè ho provato a creare un progetto totalmente nuovo poi ho messo nell' evento activated della form una msgbox e lanciando l'esecuzione questa viene richiamata ripetutamente (ho testato anche con il debug che l'evento viene richiamato più volte).
    Teoricamento la msgbox avrebbe dovuto essere richiamata una volta sola, quando come dici giustamente tu la form ottiene il focus, ma così non è.
    Il tuo test è errato, o meglio dimostra che l'evento Activated funziona perfettamente, al contrario di quanto dici.

    Se visualizzi una MessageBox, la finestra di dialogo riceve il focus ogni volta che viene mostrata; quando scegli una delle opzioni offerte dalla casella di messaggio, essa si chiude, restituendo il focus alla finestra che l'ha chiamata; la restituzione del focus, quindi, scatena l'evento Activated.

    Se nell'evento Activated hai disposto la visualizzazione della MessageBox di nuovo, il ciclo si ripete all'infinito.

    Questo non dimostra alcuna anomalia, anzi, evidenzia perfettamente il funzionamento di quell'evento, che viene correttamente scatenato quando il form interessato riceve il focus.

    Se vuoi fare un test più significativo, come quello che ho fatto io, sarebbe sufficiente inserire un campo di tipo Integer nel form e inizializzarlo a 0 (zero).
    Ogni volta che viene generato l'evento Activated, è sufficiente incrementare il contatore intero e visualizzarlo in una Label per verificare il comportamento (corretto) dell'evento stesso.

    Secondo me, stai utilizzando quell'evento nel modo sbagliato, oppure subentri in una condizione particolare che provoca la sua generazione anche quando questa non è desiderata.

    In ogni caso, credo che il problema non sia in un'anomalia dell'evento, ma nel codice che hai scritto o nel modo in cui hai fatto specificatamente uso di quell'evento.

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

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    87
    GRAZIE, GRAZIE,GRAZIE!!!
    Hai perfettamente ragione, non avevo pensato che la msgbox restituiva il focus alla finestra.. problema risolto con una var statica di controllo nella sub.
    Una cosa però ti posso assicurare che il ciclo non è infinito, la richiama penso una decina di volte e basta.
    GRAZIA ancora ciao

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da pol86
    Una cosa però ti posso assicurare che il ciclo non è infinito, la richiama penso una decina di volte e basta.
    Non ha molto senso. Ho fatto una prova e, infatti, questo non accade.

    Dipende probabilmente dal codice che hai scritto e da qualche condizione particolare che hai posto...o dalla rapidità con cui chiudi la finestra del messaggio.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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 © 2025 vBulletin Solutions, Inc. All rights reserved.