Differenze tra le versioni di "Uso della Classe WorkSpace"

Da Gambas-it.org - Wikipedia.
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
La Classe '''WorkSpace''' consente di utilizzare un oggetto speciale somigliante ad una ''TabStrip''. La ''WorkSpace'', in sostanza, implementa un'area di lavoro analoga ad una ''TabStrip'', in ciascuna scheda della quale è possibile inglobare delle finestre di primo livello. Per poter inglobare tali oggetti ''Window'' nella ''WorkSpace'', sarà necessario inanzitutto istanziarli, e, differentemente dall'oggetto ''TabStrip'', bisognerà inserirli mediante il metodo ''.Add()'' .
+
La Classe '''WorkSpace''' del Componente "gb.form.mdi" consente di utilizzare un oggetto speciale somigliante ad una ''TabStrip''. La ''WorkSpace'', in sostanza, implementa un'area di lavoro analoga ad una ''TabStrip'', in ciascuna scheda della quale è possibile inglobare delle finestre di primo livello. Per poter inglobare tali oggetti ''Window'' nella ''WorkSpace'', sarà necessario innanzitutto istanziarli, e, differentemente dall'oggetto ''TabStrip'', bisognerà inserirli mediante il Metodo ".Add()".
 
<BR>Ci si sposterà da una scheda ad un'altra della ''WorkSpace'', semplicemente cliccando sulla rispettiva linguetta.
 
<BR>Ci si sposterà da una scheda ad un'altra della ''WorkSpace'', semplicemente cliccando sulla rispettiva linguetta.
  
Per poter utilizzare detta Classe bisognerà attivare il componente: ''gb.form.mdi'' .
+
Per poter utilizzare detta Classe <SPAN Style="text-decoration:underline>bisognerà attivare il componente "gb.form.mdi"</span>.
 
 
Essa è creabile via codice, ovvero è possibile porre l'oggetto speciale "''WorkSpace''" dall'IDE di Gambas.
 
  
 +
Essa è creabile sia via codice, sia ponendo l'Oggetto speciale ''WorkSpace'' dall'IDE di Gambas.
  
 
====Esempio pratico====
 
====Esempio pratico====
 
Mostriamo un semplice esempio, nel quale viene creata una ''WorkSpace'' con tre schede. Si inseriranno nel ''Form'' due ''Button'': uno per cambiare il testo all'interno di una "TextLabel" posta in una scheda, l'altro per eliminare la scheda in evidenza.
 
Mostriamo un semplice esempio, nel quale viene creata una ''WorkSpace'' con tre schede. Si inseriranno nel ''Form'' due ''Button'': uno per cambiare il testo all'interno di una "TextLabel" posta in una scheda, l'altro per eliminare la scheda in evidenza.
  '''Private''' ws As Workspace
+
  Private ws As Workspace
  '''Private''' tl As TextLabel
+
  Private tl As TextLabel
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  <FONT color=#006400>' ''Dichiariamo la variabile del tipo Window per le finestre''
+
  <FONT color=gray>' ''Dichiara la variabile del tipo Window per le finestre che dovranno essere inglobate nelle schede della "WorkSpace":''</font>
' ''che dovranno essere inglobate nelle schede della "WorkSpace":''</font>
 
 
   Dim w As Window
 
   Dim w As Window
 
   
 
   
Riga 22: Riga 20:
 
   Dim j As Byte
 
   Dim j As Byte
 
   
 
   
+
  <FONT color=gray>' '''''Istanzia innanzitutto''' ad esempio tre '''oggetti di tipo "Window"''' che saranno inglobati in tre rispettive schede della "WorkSpace":''</font>
  <FONT color=#006400>' '''''Istanziamo innanzitutto''' ad esempio tre '''oggetti di tipo "Window"'''''
+
  For j = 0 To 2
' ''che saranno inglobati in tre rispettive schede della "WorkSpace":''</font>
+
    With w = New Window(Fmain)
    For j = 0 To 2
+
      .Border = True
+
      .W = 100
      With w = New Window(Fmain)
+
      .H = 100
        .Border = True
+
      Select Case j
        .W = 100
+
        Case 1
        .H = 100
+
  <FONT color=gray>' ''Nel secondo oggetto "Window" pone una immagine:''</font>
        Select Case j
+
          .Picture = Picture.Load("<FONT color=darkgreen>''/percorso/del/file/immagine''</font>")
          Case 1
+
        Case 2
  <FONT color=#006400>' ''Nel secondo oggetto "Window" poniamo una immagine:''</font>
+
  <FONT color=gray>' ''Nel terzo oggetto "Window" pone una "TextLabel", affinché si abbia almeno una scheda della "WorkSpace" con del testo:''</font>
            .Picture = Picture.Load("percorso_file_immagine")
+
          With tl = New TextLabel(w)
          Case 2
+
            .X = 60
  <FONT color=#006400>' ''Nel terzo oggetto "Window" poniamo una "TextLabel",''
+
            .Y = 100
' ''affinché si abbia almeno una scheda della "WorkSpace" con del testo:''</font>
+
            .W = 150
            With tl = New TextLabel(w)
+
            .H = 80
            .X = 60
+
            .Border = Border.Sunken
            .Y = 100
+
            .Background = Rnd(&000000, &FFFF00)
            .W = 150
+
            .Text = "Questa è una TextLabel posta nella terza scheda della WorkSpace !"
            .H = 80
+
          End With
            .Border = Border.Sunken
+
      End Select
            .Background = Rnd(&000000, &FFFF00)
+
  <FONT color=gray>' ''Assegna un colore casuale a ciascuna "Window":''</font>
            .Text = "Questa è una TextLabel posta nella terza scheda della WorkSpace !"
+
      .Background = Rnd(&000000, &FFFF00)
          End With
+
    End With
        End Select
+
  <FONT color=gray>' ''Inserisce ciascuna "Window" in una variabile array di tipo "Window", per poter trasferire le variabili "Window" alla "WorkSpace" successivamente:''</font>
  <FONT color=#006400>' ''Diamo un colore casuale a ciascuna "Window":''</font>
+
    ww.Add(w)
        .Background = Rnd(&000000, &FFFF00)
+
  Next
      End With
 
  <FONT color=#006400>' ''Inseriamo ciascuna "Window" in una variabile array di tipo "Window",''
 
' ''per poter trasferire le variabili "Window" alla "WorkSpace" successivamente:''</font>
 
      ww.Add(w)
 
 
    Next
 
 
 
    
 
    
  <FONT color=#006400>' '''''Quindi creaiamo l'oggetto "WorkSpace"''' e gli attribuiamo delle proprietà:''</font>
+
  <FONT color=gray>' '''''Quindi crea l'oggetto "WorkSpace"''' e gli attribuisce delle proprietà:''</font>
    With ws = New Workspace(FMain) As "pippo"
+
  With ws = New Workspace(FMain) As "pippo"
      .X = 10
+
    .X = 10
      .Y = 30
+
    .Y = 30
      .W = 400
+
    .W = 400
      .H = 400
+
    .H = 400
      For j = 0 To ww.Max
+
    For j = 0 To ww.Max
  <FONT color=#006400>' ''Inseriamo gli oggetti "Window" nella "WorkSpace" per determinare il numero di schede di cui sarà costituita:''</font>
+
  <FONT color=gray>' ''Inserisce gli oggetti "Window" nella "WorkSpace" per determinare il numero di schede di cui sarà costituita:''</font>
        <FONT color=#B22222>.Add</font>(ww[j])
+
      <FONT color=#B22222>.Add</font>(ww[j])
        .Windows[j].Caption = "Scheda" & CStr(j + 1)
+
      .Windows[j].Caption = "Scheda" & CStr(j + 1)
  <FONT color=#006400>' ''Poniamo le linguette di ciascuna scheda in alto (ad ogni modo così è di default).''
+
  <FONT color=gray>' ''Pone le linguette di ciascuna scheda in alto (ad ogni modo così è di default).''
 
  ' ''Se volessimo farle apparire in basso la proprietà sarebbe: "Align.Bottom":''</font>
 
  ' ''Se volessimo farle apparire in basso la proprietà sarebbe: "Align.Bottom":''</font>
        .Orientation = Align.Top
+
      .Orientation = Align.Top
        .Font.Bold = True
+
      .Font.Bold = True
      Next
+
    Next
  <FONT color=#006400>' ''Stabiliamo che la scheda in risalto sarà la seconda:''</font>
+
  <FONT color=gray>' ''Stabilisce che la scheda in risalto sarà la seconda:''</font>
      .ActiveWindow = ww[1]
+
    .ActiveWindow = ww[1]
    End With
+
  End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
    tl.Text = "Cambio testo alla TextLabel"
+
  tl.Text = "Cambio testo alla TextLabel"
+
 
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button2_Click()
+
  Public Sub Button2_Click()
 
   
 
   
  <FONT color=#006400>' ''Viene eliminata la scheda posta in primo piano (in evidenza rispetto alle altre):''</font>
+
  <FONT color=gray>' ''Viene eliminata la scheda posta in primo piano (in evidenza rispetto alle altre):''</font>
    ws.ActiveWindow.Close
+
  ws.ActiveWindow.Close
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 17:58, 8 giu 2024

La Classe WorkSpace del Componente "gb.form.mdi" consente di utilizzare un oggetto speciale somigliante ad una TabStrip. La WorkSpace, in sostanza, implementa un'area di lavoro analoga ad una TabStrip, in ciascuna scheda della quale è possibile inglobare delle finestre di primo livello. Per poter inglobare tali oggetti Window nella WorkSpace, sarà necessario innanzitutto istanziarli, e, differentemente dall'oggetto TabStrip, bisognerà inserirli mediante il Metodo ".Add()".
Ci si sposterà da una scheda ad un'altra della WorkSpace, semplicemente cliccando sulla rispettiva linguetta.

Per poter utilizzare detta Classe bisognerà attivare il componente "gb.form.mdi".

Essa è creabile sia via codice, sia ponendo l'Oggetto speciale WorkSpace dall'IDE di Gambas.

Esempio pratico

Mostriamo un semplice esempio, nel quale viene creata una WorkSpace con tre schede. Si inseriranno nel Form due Button: uno per cambiare il testo all'interno di una "TextLabel" posta in una scheda, l'altro per eliminare la scheda in evidenza.

Private ws As Workspace
Private tl As TextLabel


Public Sub Form_Open()

' Dichiara la variabile del tipo Window per le finestre che dovranno essere inglobate nelle schede della "WorkSpace":
 Dim w As Window

 Dim ww As New Window[]
 Dim j As Byte

' Istanzia innanzitutto ad esempio tre oggetti di tipo "Window" che saranno inglobati in tre rispettive schede della "WorkSpace":
 For j = 0 To 2
   With w = New Window(Fmain)
     .Border = True
     .W = 100
     .H = 100
     Select Case j
       Case 1
' Nel secondo oggetto "Window" pone una immagine:
         .Picture = Picture.Load("/percorso/del/file/immagine")
       Case 2
' Nel terzo oggetto "Window" pone una "TextLabel", affinché si abbia almeno una scheda della "WorkSpace" con del testo:
         With tl = New TextLabel(w)
           .X = 60
           .Y = 100
           .W = 150
           .H = 80
           .Border = Border.Sunken
           .Background = Rnd(&000000, &FFFF00)
           .Text = "Questa è una TextLabel posta nella terza scheda della WorkSpace !"
         End With
     End Select
' Assegna un colore casuale a ciascuna "Window":
     .Background = Rnd(&000000, &FFFF00)
   End With
' Inserisce ciascuna "Window" in una variabile array di tipo "Window", per poter trasferire le variabili "Window" alla "WorkSpace" successivamente:
   ww.Add(w)
 Next
  
' Quindi crea l'oggetto "WorkSpace" e gli attribuisce delle proprietà:
 With ws = New Workspace(FMain) As "pippo"
   .X = 10
   .Y = 30
   .W = 400
   .H = 400
   For j = 0 To ww.Max
' Inserisce gli oggetti "Window" nella "WorkSpace" per determinare il numero di schede di cui sarà costituita:
     .Add(ww[j])
     .Windows[j].Caption = "Scheda" & CStr(j + 1)
' Pone le linguette di ciascuna scheda in alto (ad ogni modo così è di default).
' Se volessimo farle apparire in basso la proprietà sarebbe: "Align.Bottom":
     .Orientation = Align.Top
     .Font.Bold = True
   Next
' Stabilisce che la scheda in risalto sarà la seconda:
   .ActiveWindow = ww[1]
 End With

End


Public Sub Button1_Click()

 tl.Text = "Cambio testo alla TextLabel"
 
End


Public Sub Button2_Click()

' Viene eliminata la scheda posta in primo piano (in evidenza rispetto alle altre):
 ws.ActiveWindow.Close
 
End