Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64

    [VB6] Caricamento dei form child all'avvio, lento e visibile

    In un piccolo programmino, uso un MDIForm che carica al suo interno 4 form figli.
    Il problema è che, all'avvio del programma, si vedono i 4 form caricarsi ed espandersi.

    Non è possibile caricare prima i form e poi visualizzarli già caricati in modo da evitare questo effetto sfarfallamento molto evidente?

    Ho già provato varie soluzioni, tra cui inserire doevents, fare prima la load e poi lo show dei form, ecc...

    Qualche suggerimento?
    Grazie!
    La risposta è dentro di te...
    ... e però, è sbagliata!

  2. #2
    basta che utilizzi prima il Load "tuoform" e quando ti serve visualizzarli utilizzi show...
    I database... la mia passione + o -

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    Come accennavo sopra, è uno dei tentativi che ho fatto, ma deve esserci qualche meccanismo che lo visualizza in automativo (forse il legame con l'mdi form?)

    Per chiarire ulteriormente la situazione, si tratta di un form mdi che carica 4 form al suo interno, massimizzati. Il primo di questi è quello che dovrà essere visualizzato a programma avviato.
    All'avvio si vedono chiaramente i form creati come finestrelle a cascata dentro l'mdiform, che si espandono fino alla corretta visualizzazione.
    La risposta è dentro di te...
    ... e però, è sbagliata!

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Nell'evento Load di ciascuna Frm specifica le dimensioni e specifica gli stessi valori nelle proprietà di ciascuna Frm, in modo che le dimensioni ed il posizionamento sia già determinato prima che sia visualizzato nella MDIFrm, ad esempio per la Frm1:
    codice:
    Private Sub Form1_Load()
            Me.Left = 0
            Me.Top = 0
            Me.Height = 11000
            Me.Width = 15000
    End Sub
    LM

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    Grazie, ha funzionato perfettamente!!
    Strano non avessi fatto questa prova!

    Rimane il problema del caricamento sequenziale: si vedono i form caricare uno dopo l'altro (in sequenza velocissima), non mi dispiacerebbe evitare anche questo problema!
    La risposta è dentro di te...
    ... e però, è sbagliata!

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Rimane il problema del caricamento sequenziale
    Le Frm devi visualizzarle [Frm1.Show] una alla volta, quando serve e non tutte insieme.
    LM

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    Il problema è che come l'mdiform le carica, le visualizza!
    Stavo anche pensando che il caricamento potrebbe essere dovuto alle connessioni degli adodc al database.

    Ho anche provato a caricarle in anticipo io, usando form#.Hide, ma nulla.
    Ho provato a mettere me.hide nella form load ma nulla ancora...
    (lo so, sono tentativi disperati, ma con un po' di fortuna... )

    qualche suggerimento?
    La risposta è dentro di te...
    ... e però, è sbagliata!

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Allora carica (Load) e visualizza (Show) una alla volta e quando serve.
    Magari chiudendo quello che non servono con Unload Frm1 e
    Set Frm1 = Nothing ; ne acquisti in velocità di elaborazione.
    LM

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    64
    mmm.. non sono sicuro di seguirti...

    I form caricano e vengono visualizzati comunque, anche se non metto alcun load o show.

    Del resto è importante che i forum siano tutti avviati, per le varie interazioni tra di essi.
    L'ideale sarebbe averli tutti in memoria, evitando che vengano mostrati in avvio creando l'effetto che dicevo.
    La risposta è dentro di te...
    ... e però, è sbagliata!

  10. #10
    ciao,
    l'unica cosa che mi viene in mente è far partire la form madre con la proprietà Visible = False per circa un paio di secondi in modo da lasciare il tempo di caricare tutto quello che deve. Quindi nella form metti un timer che dopo 2 (o x) secondi imposta Visible = True.
    L'unica cosa sgradevole è che l'utente, dopo aver fatto doppio click sull'icona del programma, vedrebbe aprirsi la maschera d'avvio in ritardo. Volendo puoi far partire il programma con una form di attesa (del tipo "Caricamento in corso..."), quando in realtà la form madre c'è, ma non si vede...

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.