Differenze tra le versioni di "Creare un Form mediante la Classe Window"

Da Gambas-it.org - Wikipedia.
(Nuova pagina: Poiché l'oggetto ''Form'' appartiene alla categoria dell'oggetto ''Window'', è possibile pertanto creare un ''Form'' autonomo dichiarando ed istanziando un oggetto ''Window'' per mez...)
 
 
(8 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Poiché l'oggetto ''Form'' appartiene alla categoria dell'oggetto ''Window'', è possibile pertanto creare un ''Form'' autonomo dichiarando ed istanziando un oggetto ''Window'' per mezzo di una variabile di tipo ''Window'', con la quale sarà anche gestito.
+
Poiché l'oggetto ''Form'' appartiene alla categoria dell'Oggetto ''Window'', è possibile creare un ''Form'' autonomo semplicemente dichiarando ed istanziando un Oggetto ''Window'' per mezzo di una variabile di tipo ''Window'', con la quale sarà anche gestito.
  
 +
Detti ''Form'' creati mediante la Classe ''Window'' potranno contenere regolarmente degli Oggetti grafici.
  
Poniamo l'esempio che in un applicativo intendiamo creare un secondo ''Form'', secondario rispetto al principale, mediante la Classe ''Window''. Creeremo innanzitutto una nuova classe prima di ''Form'' (che per il nostro esempio chiameremo ''ClassWin.class''). Nella Classe principale porremo ovviamente una funzione che richiamerà la predetta classe secondaria ''ClassWin.class'', nella quale porremo semplicemente un codice ad esempio simile al seguente:
+
Nel seguente esempio creeremo diversi ''Form'' mediante la Classe ''Window'':
  '''Private''' w As Window
+
  Private w As <FONT color=#B22222>Window</font>
 +
Private bt As Button
 
   
 
   
 
   
 
   
  '''Public''' Sub mostraFormWindow() as "finestra"
+
  '''Public''' Sub Button1_Click()
      
+
   With w = New Window
+
  Dim b As Byte
    .X = 100
+
    .Y = 100
+
  For b = 0 To 4
    .W = 200
+
    .H = 150
+
<FONT color=gray>' ''Creiamo un nuovo "Form":''</font>
    .Background = Color.Yellow
+
    With w = New <FONT color=#B22222>Window</font> As "Finestra"
    .Show
+
      .W = 300
  End With
+
      .H = 200
   
+
      .Caption = "num. " & CStr(b)
 +
      .Background = &111111 * (b + 1000)
 +
<FONT color=gray>' ''Per far mostrare la finestra, è assolutamente necessario chiamare il suo Metodo ".Show()":''</font>
 +
      .Show()
 +
     End With
 +
 +
<FONT color=gray>' ''Poniamo su ciascun nuovo "Form" un "Button":''</font>
 +
    creaTasto()
 +
  Next
 +
 +
'''End'''
 +
 
 +
'''Public''' Sub Finestra_Open()
 +
 
 +
<FONT color=gray>' ''Per ogni nuovo "From" creato, che si apre, ne vediamo in console il nome:''</font>
 +
   Print w.Text
 +
 
 +
'''End'''
 +
 +
'''Public''' Sub creaTasto()
 +
 
 +
  With bt = New Button(<FONT color=#B22222>w</font>) As "bt"
 +
    .X = 20
 +
    .Y = 20
 +
    .W = 100
 +
    .H = 40
 +
    .Background = Color.Yellow
 +
    .Text = "Tasto " & w.Text
 +
  End With
 +
 
 
  '''End'''
 
  '''End'''
 
   
 
   
 +
'''Public''' Sub bt_Click() <FONT color=gray>' ''I "Button" presenti sui nuovi "Form" sono regolarmente funzionanti''</font>
 +
 
 +
  Print "Premuto " & Last.Text
 +
 +
  Wait 2
 
   
 
   
  '''Public''' Sub finestra_MouseDown()
+
  <FONT color=gray>' ''Chiudiamo il "Form", individuandolo come "Parent", del "Button" cliccato:''</font>
 +
  Last.Parent.Close
 
    
 
    
    Print "Hai cliccato sulla Finestra !"
+
'''End'''
 +
 
 +
 
 +
==Semitrasparenza di un ''Form'' creato con la Classe ''Window==
 +
E' possibile applicare la ''semitrasparenza'' anche ad un ''Form'', generato con la Classe ''Window'', (e più in generale la si può applicare ad un oggetto di tipo ''Window'') mediante la medesima [[Semitrasparenza_di_un_Form|modalità prevista per la specifica Classe ''Form'']].
 +
 
 +
Di seguito un semplice esempio:
 +
Private w As Window
 
    
 
    
 +
 +
'''Public''' Sub Button1_Click()
 +
 +
  With w = New Window
 +
    .X = Mouse.ScreenX
 +
    .Y = Mouse.ScreenY
 +
    .W = 300
 +
    .H = 300
 +
    .Border = Border.None
 +
<FONT color=gray>' ''Carichiamo nell'oggetto di tipo "Window" un'immagine semitrasparente, avente ovviamente una parte d'immagine visibile:</font>
 +
    .Picture = Picture.Load("<FONT color=gray>''/percorso/file/immagine.png''</font>")
 +
<FONT color=gray>' ''Impostiamo la proprietà ".Mask" dell'oggetto di tipo "Window" a "True":''</font>
 +
    <FONT color=#B22222>.Mask</font> = <FONT color=#B22222>True</font>
 +
    .Show()
 +
  End With
 +
 
  '''End'''
 
  '''End'''

Versione attuale delle 12:52, 30 dic 2021

Poiché l'oggetto Form appartiene alla categoria dell'Oggetto Window, è possibile creare un Form autonomo semplicemente dichiarando ed istanziando un Oggetto Window per mezzo di una variabile di tipo Window, con la quale sarà anche gestito.

Detti Form creati mediante la Classe Window potranno contenere regolarmente degli Oggetti grafici.

Nel seguente esempio creeremo diversi Form mediante la Classe Window:

Private w As Window
Private bt As Button


Public Sub Button1_Click()

 Dim b As Byte

 For b = 0 To 4

' Creiamo un nuovo "Form":
   With w = New Window As "Finestra"
     .W = 300
     .H = 200
     .Caption = "num. " & CStr(b)
     .Background = &111111 * (b + 1000)
' Per far mostrare la finestra, è assolutamente necessario chiamare il suo Metodo ".Show()":
     .Show()
   End With

' Poniamo su ciascun nuovo "Form" un "Button":
   creaTasto()
 Next

End
 
Public Sub Finestra_Open()
 
' Per ogni nuovo "From" creato, che si apre, ne vediamo in console il nome:
  Print w.Text
 
End

Public Sub creaTasto()
 
 With bt = New Button(w) As "bt"
   .X = 20
   .Y = 20
   .W = 100
   .H = 40
   .Background = Color.Yellow
   .Text = "Tasto " & w.Text
 End With
 
End

Public Sub bt_Click() ' I "Button" presenti sui nuovi "Form" sono regolarmente funzionanti
 
  Print "Premuto " & Last.Text

  Wait 2

' Chiudiamo il "Form", individuandolo come "Parent", del "Button" cliccato:
  Last.Parent.Close
 
End


Semitrasparenza di un Form creato con la Classe Window

E' possibile applicare la semitrasparenza anche ad un Form, generato con la Classe Window, (e più in generale la si può applicare ad un oggetto di tipo Window) mediante la medesima modalità prevista per la specifica Classe Form.

Di seguito un semplice esempio:

Private w As Window
 

Public Sub Button1_Click()

 With w = New Window 
   .X = Mouse.ScreenX
   .Y = Mouse.ScreenY
   .W = 300
   .H = 300
   .Border = Border.None
' Carichiamo nell'oggetto di tipo "Window" un'immagine semitrasparente, avente ovviamente una parte d'immagine visibile:
   .Picture = Picture.Load("/percorso/file/immagine.png")
' Impostiamo la proprietà ".Mask" dell'oggetto di tipo "Window" a "True":
   .Mask = True
   .Show()
 End With

End