Differenze tra le versioni di "Impedire l'apertura di un Form secondario più di una volta"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
 
Per impedire che un ''Form'' secondario possa essere aperto più di una volta, si possono esperire almeno due modalità.
 
Per impedire che un ''Form'' secondario possa essere aperto più di una volta, si possono esperire almeno due modalità.
 
  
 
Facciamo l'esempio in cui un ''Form'' secondario (che chiameremo ''Form1'') viene aperto mediante la pressione di un tasto posto sul ''Form'' principale (quello della Classe ''FMain'').
 
Facciamo l'esempio in cui un ''Form'' secondario (che chiameremo ''Form1'') viene aperto mediante la pressione di un tasto posto sul ''Form'' principale (quello della Classe ''FMain'').
 
  
 
====Prima modalità====
 
====Prima modalità====
 
Nella prima modalità porremo del codice sia nella Classe principale ''FMain'' che nella Classe del ''Form'' secondario.
 
Nella prima modalità porremo del codice sia nella Classe principale ''FMain'' che nella Classe del ''Form'' secondario.
 
  
 
Il codice presente nella Classe principale ''FMain'' sarà il seguente:
 
Il codice presente nella Classe principale ''FMain'' sarà il seguente:
Riga 13: Riga 10:
 
    
 
    
 
    
 
    
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
 
   frm.Show
 
   frm.Show
 
   
 
   
  '''End'''
+
  End
  
  
 
Il codice presente nella Classe del ''Form'' secondario (''Form1'') sarà il seguente, al fine di impedire che venga sollevato l'errore "''Invalid object''", quando si tenterà di aprire nuovamente il ''Form'' secondario (''Form1''), dopo averlo precedentemente chiuso:
 
Il codice presente nella Classe del ''Form'' secondario (''Form1'') sarà il seguente, al fine di impedire che venga sollevato l'errore "''Invalid object''", quando si tenterà di aprire nuovamente il ''Form'' secondario (''Form1''), dopo averlo precedentemente chiuso:
  '''Public''' Sub Form_Close()
+
  Public Sub Form_Close()
 
    
 
    
 
   FMain.frm = New Form1
 
   FMain.frm = New Form1
 
      
 
      
  '''End'''
+
  End
  
  
Riga 34: Riga 31:
 
    
 
    
 
    
 
    
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
    
 
    
 
   If Object.IsValid(frm) = False Then  
 
   If Object.IsValid(frm) = False Then  
Riga 41: Riga 38:
 
   Endif
 
   Endif
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 15:42, 25 giu 2024

Per impedire che un Form secondario possa essere aperto più di una volta, si possono esperire almeno due modalità.

Facciamo l'esempio in cui un Form secondario (che chiameremo Form1) viene aperto mediante la pressione di un tasto posto sul Form principale (quello della Classe FMain).

Prima modalità

Nella prima modalità porremo del codice sia nella Classe principale FMain che nella Classe del Form secondario.

Il codice presente nella Classe principale FMain sarà il seguente:

Public frm As New Avisos
 
 
Public Sub Button1_Click()

 frm.Show

End


Il codice presente nella Classe del Form secondario (Form1) sarà il seguente, al fine di impedire che venga sollevato l'errore "Invalid object", quando si tenterà di aprire nuovamente il Form secondario (Form1), dopo averlo precedentemente chiuso:

Public Sub Form_Close()
 
 FMain.frm = New Form1
   
End


Seconda modalità

La seconda modalità è più breve, e fa uso della sola Classe del Form principale (FMain):

Public frm As Avisos
  
  
Public Sub Button1_Click()
  
  If Object.IsValid(frm) = False Then 
    frm = New Avisos
    frm.Show
  Endif

End