Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    Form mdi, child di child

    Ho dei form mdi, Sapete indicarmi come faccio per creare un form child aperto da un'altro form child? Entrambi si appoggiano su un contenitore quindi devono stare all'interno di un pannello che fa da contenitore.. Possono stare più elementi in questo caso form all'interno di un pannello?

    Esempio di creazione di un form child:

    codice:
            If FormSpese.CustomerForm Is Nothing Then
                Dim frmSpeseChild As New frmSpese()
                frmSpeseChild.MdiParent = Me
                Contenitore.Controls.Clear()
                Contenitore.Controls.Add(frmSpeseChild)
                frmSpeseChild.Show()
                FormSpese.CustomerForm = frmSpeseChild
            Else
                Contenitore.Controls.Clear()
                Contenitore.Controls.Add(FormSpese.CustomerForm)
                FormSpese.CustomerForm.Show()
            End If
    mentre all'interno di un modulo:

    codice:
    Public Class FormSpese
        Private Shared m_CustomerForm As frmSpese
        Public Shared Property CustomerForm() As frmSpese
            Get
                Return m_CustomerForm
            End Get
            Set(ByVal Value As frmSpese)
                m_CustomerForm = Value
            End Set
        End Property
    End Class
    Tony

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Già l'approccio MDI è datato, obsoleto e fuorviante... tu vorresti implementare un "child" all'interno di un "child"?

    P.S.: metti il linguaggio nei titoli delle discussioni.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    esatto!
    Tony

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da tony83
    esatto!
    Non esiste, a meno di non utilizzare UserControl, cioè di simularlo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Originariamente inviato da alka
    Non esiste, a meno di non utilizzare UserControl, cioè di simularlo.
    no allora:

    mi spiego meglio..

    Devo aprire un form child da un'altro child come posso fare?

    Problema che non so come dire che deve essere figlio di form non aperto ma quello ancora superiore!

    Poi si pensandoci potrei simulare come seconda cosa quello che dici tu..
    Tony

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Ok, allora c'è stata un'incomprensione: quando si parla di un child all'interno di un child, ci si riferisce al luogo in cui avviene l'operazione, non al rapporto di contenimento tra i due.

    In tal caso, è sufficiente creare il form e assegnare a questo lo stesso del form "child" in cui viene creato.

    E' di una banalità così sconvolgente che quando leggi il codice che segue.......

    Nel primo form "child":

    codice:
    Dim Frm As New SecondChildForm()
    Frm.MdiParent = Me.MdiParent
    Frm.Show()
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    ho provato cosi:

    codice:
            If FormNuovaSpesa.CustomerForm Is Nothing Then
                Dim frmNuovaSpesaChild As New frmNuovaSpesa()
                frmNuovaSpesaChild.MdiParent = Me.MdiParent             
                frmNuovaSpesaChild.Show()
                FormNuovaSpesa.CustomerForm = frmNuovaSpesaChild
                FormNuovaSpesa.CustomerForm.int_idStabile = CInt(txtId_stabile.Text)
                Call recuperoIdSocieta()
            Else
                FormNuovaSpesa.CustomerForm.Show()
                FormNuovaSpesa.CustomerForm.int_idStabile = CInt(txtId_stabile.Text)
                Call recuperoIdSocieta()
            End If
    MdiContainer -> Child -> Child
    frmMenu -> frmSpesa - > frmNuovaSpesa
    Ma non funge perchè sembra non essere child di frmMenu
    Tony

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Non esistono "child" di un menu.
    Non si capisce dove hai scritto quel codice.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #9
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Modulo:

    codice:
    
    Public Class FormSpese
        Private Shared m_CustomerForm As frmSpese
        Public Shared Property CustomerForm() As frmSpese
            Get
                Return m_CustomerForm
            End Get
            Set(ByVal Value As frmSpese)
                m_CustomerForm = Value
            End Set
        End Property
    End Class
    
    Public Class FormNuovaSpesa
        Private Shared m_CustomerForm As frmNuovaSpesa
        Public Shared Property CustomerForm() As frmNuovaSpesa
            Get
                Return m_CustomerForm
            End Get
            Set(ByVal Value As frmNuovaSpesa)
                m_CustomerForm = Value
            End Set
        End Property
    End Class
    
    [
    Tony

  10. #10
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Nel form menu per esempio quando apro il form spese:
    codice:
         If FormSpese.CustomerForm Is Nothing Then
                Dim frmSpeseChild As New frmSpese()
                frmSpeseChild.MdiParent = Me
                Contenitore.Controls.Clear()
                Contenitore.Controls.Add(frmSpeseChild)
                frmSpeseChild.Show()
                FormSpese.CustomerForm = frmSpeseChild
            Else
                Contenitore.Controls.Clear()
                Contenitore.Controls.Add(FormSpese.CustomerForm)
                FormSpese.CustomerForm.Show()
            End If
    Tony

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.