Uso della Classe WorkSpace

Da Gambas-it.org - Wikipedia.

La Classe WorkSpace consente di utilizzare un oggetto speciale somigliante ad una TabStrip. La WorkSpace implementa un'area di valoro naloga 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 .
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 .


Esempio pratico

Mostriamo un semplice esempio, nel quale viene creata una WorkSpace con tre schede. E' prevista nel Form la presenza di un Button:

Private ws As Workspace
Private tl As TextLabel


Public Sub Form_Open()

' Dichiariamo 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


' Istanziamo ad esmepio 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" poniamo una immagine:
           .Picture = Picture.Load("percorso_file_immagine")
         Case 2
' Nel terzo oggetto "Window" poniamo 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
' Diamo un colore casuale a ciascuna "Window":
       .Background = Rnd(&000000, &FFFF00)
     End With
' Inseriamo ciascuna "Window" in una variabile array di tipo "Window",
' per poter trasferire le variabili "Window" alla "WorkSpace" successivamente:
     ww.Add(w)

   Next

  
' Creaiamo l'oggetto "WorkSpace" e gli attribuiamo delle proprietà:
   With ws = New Workspace(FMain) As "pippo"
     .X = 10
     .Y = 30
     .W = 400
     .H = 400
     For j = 0 To ww.Max
       .Add(ww[j])
       .Windows[j].Caption = "Scheda" & CStr(j + 1)
' Poniamo 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
' Stabiliamo che la scheda in risalto sarà la seconda:
     .ActiveWindow = ww[1]
   End With

End


Public Sub Button1_Click()

   tl.Text = "Cambio testo"

End