Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [Vb6] Form Variabili

  1. #1
    Utente di HTML.it L'avatar di zimas
    Registrato dal
    Feb 2009
    Messaggi
    20

    [Vb6] Form Variabili

    Ciao a tutti,
    ho i lseguente problema:
    voglio creare una funzione generica che apra una determinata form in base a cosa
    seleziono nella form principale.

    Ad esempio la funzione che scrivo quì sotto la uso per chiudere tutte le form
    aperte:
    <
    Dim frm as Form
    For Each frm In Forms
    If frm.name="MDIStart" then
    Else
    Unload frm
    End If
    Next
    >

    Qualcuno può aiutarmi a fare l'esatto opposto?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quel codice serve a chiudere le finestre APERTE, e non ha niente a che vedere con quello che chiedi tu, dato che la finestra che vuoi aprire è ovviamente CHIUSA .

    Se spieghi un po' meglio cosa devi fare, dando un'esempio del codice, su quale condizione basi la scelta di un form piuttosto di un'altro, ecc.
    Meglio se includi un po' di codice...


  3. #3
    Utente di HTML.it L'avatar di zimas
    Registrato dal
    Feb 2009
    Messaggi
    20
    Ciao Gibra,
    cercherò di essere più chiaro,
    Ho un MdiForm con x Form Child, da una di queste form che si chiama "FrmMenu" devo aprire in base a cosa seleziono da un menu un'altra form,
    il codice è questo (ovviamente incompleto perchè non riesco):

    <<

    Function ApriForm()

    Dim frm as Form
    Dim NomeForm As String

    On Error GoTo Err_ApriForm

    NomeForm = "Frm" & NomeTab ' NomeTab è una variabile che recupero da FrmMenu

    For Each frm In Forms
    If frm.name=NomeForm then
    frm.show
    End if
    Next

    Err_ApriForm:
    If Err.Number <> 0 Then
    MsgBox Err.Description, vbInformation, "Errore Nr. " & Err.Number & " -ApriForm"
    Err.Clear
    End If


    End Function
    >>

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ovvio che non funziona, come ho già detto:
    La collection Forms elenca SOLO le finestre APERTE.

    In VB6, non c'è modo di riferirsi ad oggetti usando delle stringhe.

    Se vuoi parametrizzare l'apertura dei form puoi fare in due modi:


    1) Passi NomeTab come parametro alla tua funzione, poi usi i classici IF/THEN oppure SELECT/CASE/END SELECT testando il valore della variabile NomeTab confrontandolo
    codice:
        
        IF NomeTab = "Tab1" Then
        etc...
    In questo modo, però, quando aggiungi un nuovo form che vuoi gestire qui, devi necessariamente aggiungere la condizione.

    2) usi un array di form
    codice:
        ' dichiarazioni
        Dim frms(3) As Form
        ' MDIForm1_Load()
        Set frms(0) = frmCasa
        Set frms(1) = frmAuto
        Set frms(2) = frmLavoro
    
        'In seguito puoi aprire il form da un array di menu:
        Private Sub mnuApriForm_Click(Index As Integer)
            frms(Index).Show
        End Sub
    In questo modo, invece, quando aggiungi un nuovo form da gestire, basta solo aumentare la dimensione dell'array, ed accodare l'assegnazione del nuovo form all'array:

    codice:
        Dim frms(4) as Form
    
        Set frms(0) = frmCasa
        Set frms(1) = frmAuto
        Set frms(2) = frmLavoro
        Set frms(3) = frmNuova

  5. #5
    Utente di HTML.it L'avatar di zimas
    Registrato dal
    Feb 2009
    Messaggi
    20
    Ciao Gibra,

    Grazie proverò.
    Che tu sappia c'è un modo in fase di avvio programma per estrarre l'elenco di tutte le form?

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.