Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6 - visualizzare Frms in memoria.

    Ho il seguente quesito da proporvi.
    Con un click su un'icona vorrei visualizzare in progressione (una per ciscun clicK)le form che sono caricate in memoria. Che sistema dovrei usare?
    codice:
    Case "Dex"
                For Each yForm In Forms
                    If yForm.Name <> "MDIForm1" Then
                        yForm.WindowState = 0
                        yForm.Show
                    End If
                Next
    Questo sistema NON va bene perchè richiamo tutte le Frms, mentre vorrei che venissero visualizzate una per una.
    Ad esempio Frm1 visualizzata, mentre sotto ci sono Frm2, Frm3, ...
    Poi Frm2, sotto Frm3, Frm1, ecc.
    Potete indicarmi la soluzione,
    Grazie !
    LM

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito nulla.

  3. #3
    Ciao Luigi.

    Forse potresti memorizzare in una variabile array il nome delle tue form e gestire il click sull'icona con questi valori.

    Sperando ovviamente di aver compreso bene.

    Fammi sapere.

    Giulio C. - Roma

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao Giulio,
    sì pensavo anch'io ad una soluzione del genere.
    Però è anche vero che le forms in memoria le posso vedere con
    For Each yForm In Forms.
    Detto questo devo inventarmi qualcosa che
    1° mi dica quali sono le forms attive (For Each yForm In Forms);
    2° che dalla Frm visualizzata vada avanti sino UBond (penso?);
    3° che si fermi a quel punto max;
    4° che torni indietro.

    ad Esempio se la Frm visualizzata (attiva) é Frm2, ed in memoria sono caricate 4 Frms, al primo click viene posta in primo piano frm3, secondo click Frm4, terzo click Frm1.
    Penso d'essere stato chiaro.
    Del sistema cosa ne pensi ?
    LM

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Penso d'aver risolto.
    Grazie a tutti.
    LM

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ho perso diverso tempo, con risultati insoddisfacenti.
    Posto un esempio (l'ultimo, in ordine di tempo ...). C'è un amico che mi può dare una mano?
    codice:
    Select Case Button.Key
            ' Torna indietro:
            Case "Sin"
            ' Va Avanti:
            Case "Dex"
                For i = 0 To Forms.Count
                    If Forms(i).Name <> "MDIForm1" Then
                        Select Case Forms(i).Name
                           Case Is = "Form1"
                                If byFrmM1 = 0 Then
                                    Form1.SetFocus
                                    byFrmM1 = 1
                                    Exit For
                                End If
                            Case Is = "Form2"
                                If byFrmM2 = 0 Then
                                    Form2.SetFocus
                                    byFrmM2 = 1
                                    Exit For
                                End If
                            Case Is = "Form3"
                                If byFrmM3 = 0 Then
                                    Form3.SetFocus
                                    byFrmM3 = 1
                                    Exit For
                                End If
                        End Select
                    End If
                Next
        End Select
    LM

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117

    Re: VB6 - visualizzare Frms in memoria.

    Ciao, LMondi

    forse basta scrivere così:

    Public Scaricato as boolean

    For Each yForm In Forms
    If yForm.Name <> "MDIForm1" Then
    yForm.WindowState = 0
    yForm.Show
    --->Scaricato = False
    do
    doevents
    loop until Scaricato
    End If
    Next

    posto che questo sia Form1, il clic sull'icona, provoca Form1.Scaricato = True


    Non so se ho capito...

    Piera

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Grazie per l'attenzione pierabo.
    Il problema è stato risolto dal brillante The Truster, posto di seguito il codice da lui fornito, qualora dovesse servire a qualcuno:
    codice:
    Dim FormList As New Collection
        Dim ActForm As Integer
        Dim VisibleForm As Form
    Private Sub mnuFileApri_Click()
        Dim frm As Form
    
        Form1.Show
        Form2.Show
        Form3.Show
        
        For Each frm In Forms
            If frm.Name <> Me.Name Then
                FormList.Add frm
            End If
        Next frm
            ActForm = 1
            Set VisibleForm = FormList(ActForm)
            VisibleForm.SetFocus
    End Sub
    ' -----------------------------------------
    Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
        On Error Resume Next
        
        Select Case Button.Key
            ' Va Avanti:
            Case "Dex"
                If ActForm < FormList.Count Then
                    ActForm = ActForm + 1
                    Set VisibleForm = FormList(ActForm)
                    VisibleForm.SetFocus
                End If
            ' Torna indietro:
            Case "Sin"
                If ActForm > 1 Then
                    ActForm = ActForm - 1
                    Set VisibleForm = FormList(ActForm)
                    VisibleForm.SetFocus
                End If
            End Select
    End Sub
    Grazie a tutti per l'attenzione.
    LM

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.