Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[VB6] Leggere Informazioni su un oggetto senza caricarlo

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[VB6] Leggere Informazioni su un oggetto senza caricarlo

Postdi maxmula » 17/04/13 12:17

Ciao a tutti,
avrei bisogno una delucidazione su VB6: nel mio programma l'utente può creare un certo numero di form, che sono organizzati come array:

Codice: Seleziona tutto

Public MyForms() as TemplateForm    ' TemplateForm è un Form precedentemente creato



L'utente può anche chiudere uno o più di questi form, che vengono eliminati (evento Unload)
L'array viene gestito in modo dinamico: se l'utente crea un form, e MyForms non ha nessuna posizione libera (lasciata da un form precedentemente cancellato), "cresce" per poterlo ospitare (redim Preserve).

Ognuno dei form contiene dei controlli Timer che vorrei disabilitare alla chiusura del programma, ma solo se il rispettivo form non è stato già chiuso (l'evento associato a questi timer lancia procedure che interferiscono con la corretta sequenza d'uscita).

Per fare ciò, uso questo codice:
Codice: Seleziona tutto
Private Sub Form_Unload(CANCEL As Integer)
         
            (..)

            For k = 0 To UBound(MyForms)
                If MyForms(k).hwnd > 0 Then
                    For Each ctrl In MyForms(k).Controls
                        If TypeOf ctrl Is Timer Then
                            ctrl.Enabled = False
                        End If
                    Next
                End If
            Next

          (...)

End Sub



Il mio dubbio riguarda il controllo sugli handle dei form: in debug mode posso osservare che anche se un form è stato scaricato (la proprietà .hwnd risulta essere "Variabile non definita passando il cursore del mouse sul nome), ma la routine "entra" comunque nel secondo ciclo For-Next e procede a disabilitare ugualmente tutti i timer.

Non è che la semplice interrogazione della proprietà .hwnd causi il (ri)caricamento del form in questione? Esiste una procedura più corretta?

In realtà non è un grande problema se i form vengono ricaricati, dal momento che programma deve comunque terminare; Volevo solo risparmiare qualche milliecondo in fase d'uscita. :)

Si accettano suggerimenti e... ovviamente Grazie in anticipo.

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Sponsor
 

Torna a Programmazione


Topic correlati a "[VB6] Leggere Informazioni su un oggetto senza caricarlo":


Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti