Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VB6]Collegamento tra form

    Domanda:
    sto costruendo un'applicazione che contiene 6 form che si richiamano in successione mediante pulsanti. Il codice che ho utilizzato per questi pulsanti è:
    codice:
    form1.hide
    form2.show
    per il passaggio form1->form2

    Ancora non ho inserito la connessione con il database perché volevo farmi solo un'idea del funzionamento dell'applicazione.
    Visto che è il primo esperimento che faccio vi chiedevo di darmi uno spunto: il problema è che ogni volta che passo da un form all'altro e a seconda del form più o meno complesso da caricare c'è un momento di sospensione in cui appare l'IDE di VB6 nello sfondo. Ho provato a fare l'eseguibile ed in quel caso non appare più l'IDE perché ho chiuso il programma ma appare lo sfondo della cartella dove risiede l'eseguibile. Questi stacchi non sono accettabili. Si tratta di codice scritto male o c'è una modalità che bisogna attivare prima di cominciare a scrivere il codice? I miei form devono sostituirsi uno con l'altro nell'interfaccia utente. Attualmente la modalità dei form credo sia MDI perché non posso aprire i form separatamente ma devo partire sempre dal primo.
    Scusatemi per la banalità della mia domanda

  2. #2
    Non vi sto chiedendo di scrivermi del codice ma solo di dirmi che evidentemente quello che ho scritto io fa schifo, o se non è detto che sia così, da cosa può dipendere questa lentezza nella visualizzazione. I form non contengono grafica pesante (niente sfondi ma solo colori e rich text box), in un paio c'è una procedura che mi ha suggerito Jupi64 per fare lo zoom e il pan di immagini. Quelli più lenti ad aprirsi sono proprio questi ultimi con zoom e pan, ma comunque tutti hanno problemi.

  3. #3
    Ho guardato un'altro programma simile al mio fatto da un programmatore (non da una principiante come me). E' fatto in vb.net però vedo che quando passa da un form all'altro compare una clessidra e dopo qualche secondo cambia l'immagine senza che si visualizzi lo sfondo (ad esempio della cartella in cui è contenuto il file .exe)in attesa di caricare il secondo form.
    Qual'è il nome della funzione per mostrare la clessidra nel passagio da un form all'altro? (si potrà fare anche in vb6, spero)
    Vi prego, potreste gentilmente darmi una risposta?

  4. #4
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, bisogna vedere il codice che hai messo nell'evento onLoad...
    Jupy

  5. #5
    Ciao!
    Penso che come evento onload tu intenda il Form Load di ciascun form . Lì non ho messo niente. Invece ho scritto questo codice per tutti i pulsanti che mi portano al form successivo:
    codice:
        Load form2
        Unload form1    
        Set form1 = Nothing
        form2.Show
    Mi sa che ho fatto un gran pasticcio...

  6. #6
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ma nell'evento Load del form2 (Form_Load), non c'è niente? altrimenti mi sembra strano che ci metta molto tempo a caricare la senconda form. Nell'evento Unload del primo form chiamante hai messo qualche procedura particolare??
    Ora non so le tue necessità...per il quale scarichi un form e ne carichi un'altro..
    Non dovrebbe cambiare più di tanto.. ma prova cosi
    codice:
        form2.Show
        Unload form1    
    
    Private Sub Form_Unload(Cancel As Integer)
       Set form1 = Nothing    
    End Sub
    Jupy

  7. #7
    Ho messo:
    codice:
        form2.Show
        Unload form1
    Nell'evento Click dei pulsanti
    codice:
       Private Sub Form_Unload(Cancel As Integer)
       Set form1 = Nothing    
       End Sub
    Nell'evento Unload di ciascun form

    Funziona proprio bene.

    Nell'evento Click del pulsante Esci che è presente in ciascun form (perché da ogni videata si deve poter uscire dal programma)ho scritto solo:
    codice:
       Unload Me
    Cosa dovrei aggiungere per non avere quella sorta di "sventagliata" di form che si chiudono tutti assieme?
    Devo mettere un Unload per ciascun form e questo per tutti e 6 i pulsanti esci dei 6 form? Non so se mi sono spiegata...o c'é un sistema più rapido e definitivo?

  8. #8
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Scusa ma non ho capito bene..
    da quello che ho potuto capire, tu passi da un form all'altro, chiudendo (e scaricandolo dalla memoria) il form chiamante, alla fine dovresti sempre avere un solo form aperto.. o mi sbaglio?
    Jupy

  9. #9
    Se per chiudere un form è sufficiente scrivere quelle righe di codice nel pulsante di passaggio tra un form e l'altro e nell'evento unload del form come ho scritto nel post precedente allora direi che i form sono già chiusi. Comunque il click sul pulsante esci mi dà una specie di lampeggio che sembra essere dovuto (è molto rapido) alla chiusura dei vari form. Forse se preparo l'eseguibile questo "lampeggio" non si vede più oppure manca qualcosa per chiudere i form volta per volta.
    Comunque penso che ci sia un po' di confusione, sicuramente fatta da me. Io mi voglio solo muovere da un form all'altro tramite pulsanti (il form è visualizzato a tutto schermo senza barre di navigazione)e voglio poter uscire dal programma (che serve solo a consultare delle immagini da un database)quando mi pare con il pulsante esci, nel modo più "indolore" possibile.

  10. #10
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    premesso che, dopo l'istruzione Unload Me non deve esserci nessun altra riga di codice, e nell'evento unload scaricare solo le variabili dalla memoria.
    Dopo questo, se tu ogni volta passi da un form all'altro in questa maniera:
    codice:
    ...
    nextForm.show
    Unload Me
    
    Private Sub Form_Unload(Cancel As Integer)
      ...scarichi le variabili dalla memoria.
      Set form1 = Nothing
    End Sub
    nel tuo pulsante Esci basta che metti questo codice:

    codice:
    private sub btnEsci_Click()
       End
    End sub
    Jupy

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.