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

    [VB6] Finestre figlie MDI e loro eistenza

    Scusate il titolo non proprio spartano ma non sapevo bene come esplicarlo in due parole

    Cmq ho un necessità. Devo aggioranre una lista su una finestra figlia MDI con i dati che vengono inseriti in un'altra finestra figlia MDI. Fin qui non ci sarebbe niente di difficile. Il problema è che l'aggiornamento va fatto SUBITO solo se la finestra con li sta è già attiva (cioè è aperta). Come faccio, via codice dalla finestra di inserimento del dato, a sapere se la finestra da aggiornare è attiva?

    Spero di essermi spiegato...

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Fai un ciclo For Each interrogando la collection Forms.
    Se trovi il nome della finestra da aggiornare, vuol dire che è aperta.

    Boolean

  3. #3
    consiglio utile

    Risolto in maniera artigianale

  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Originariamente inviato da Seyen
    Risolto in maniera artigianale
    Ovvero? Sono curioso...

    Boolean

  5. #5
    Praticamente come hai detto te. Solo che ho creato una collection pubblica nella Form padre. Ogni volta che apro una nuova finestra (qualsiasi...) aggiungo un elemento alla collezione con il nome della finestra e lo cancello in uscita. Quando devo sapere se una determianta finestra è aperta non faccio nient'altro che scorrere la collezione (che cmq non è mai pienissima di oggetti...non è che ci siano più di 5-6 finestre contemporanee aperte) e vedere se è aperta quella che mi interessa.

    Praticamente come hai detto te ma senza usare una collection di Form (che non ho saputo fare... ) ma una collection generica.

    P.S: mi posti il codice per creare una collection di Forms....

  6. #6
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Molto semplice.

    codice:
    Function FormAperto(frmName As String) As Boolean
    Dim frm As Form
    FormAperto = False
    For Each frm In Forms
        If frm.Name = frmName Then
            FormAperto = True
            Exit For
        End If
    Next frm
    End Function
    Puoi usare questa funzione così:

    codice:
    If FormAperto("NomeTuoForm") Then
        'Fai così
    Else
        'Fai cosà
    End If
    Il codice l'ho scritto direttamente qui, per cui è probabile che ci sia qualche svista

    Boolean

  7. #7
    Grazie mille. Era la cosa più semplice eppure la cosa che non avevo pensato

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.