Benutzer-Werkzeuge

Webseiten-Werkzeuge


k12:k12.6:k12.6.1:start

12.6.1 TabStrip – Projekte

Bei der Entwicklung der beiden vorgestellten Projekte – bei denen ein oder mehrere TabStrips (Register) eingesetzt werden – hat es sich bewährt, schon bei den Vorüberlegungen

  • die Anzahl der Register-Karten festzulegen,
  • die Beschriftungen auf den Registerkarten-Reitern vorzugeben und
  • die Anordnung der einzelnen Steuer-Elemente auf den einzelnen Register-Karten sowie deren Funktionalität zu planen.

In den weiteren Absätzen werden die Begriffe TabStrip und Register synonym verwendet. Arbeiten Sie zum ersten Mal mit einem TabStrip, dann müssen Sie wissen, dass einige Eigenschaften im Eigenschaften-Fenster für das markierte Register als Container-Komponente global gelten und andere nur für die ausgewählte Register-Karte. Wenn Sie ein Tab-Strip-Steuerelement in der IDE aus dem Komponenten-Register in der Register-Karte 'Container' auf das Formular ziehen, dann sehen Sie zunächst nur eine Register-Karte mit der Beschriftung 'Tab0' für den Registerkarten-Reiter. Nachdem Sie die erforderliche Anzahl der Register-Karten im Eigenschaften-Fenster festgelegt haben, erhöht sich auch die Anzahl der sichtbaren Registerkarten – wobei die zusätzlichen Registerkarten keine Beschriftung besitzen. Spätestens jetzt sollten Sie das Projekt speichern! Klicken Sie nun auf den ersten Registerkarten-Reiter, dann verschwindet die Beschriftung 'Tab0' für den ersten Registerkarten-Reiter. Da die erste Register-Karte markiert ist (→ Markierung am oberen Rand des Reiters), können Sie nun deren wesentlichen Eigenschaften im Eigenschaften-Fenster festlegen:

  • Text → Text auf dem Registerkarten-Reiter,
  • Enabled → Gibt mit dem Wert 'True' an, ob die Register-Karte aktiv ist,
  • Visible → Signalisiert mit dem Wert 'True' die Sichtbarkeit einer Register-Karte,
  • Picture → Fügt ein Icon auf dem Registerkarten-Reiter vor den Text ein,
  • Closable → Für den Wert 'True' erhalten alle Registerkarten-Reiter eine Schließen-Schaltfläche.

Nach der Auswahl weiterer Register-Karten können Sie auch deren Eigenschaften ändern, wobei sich die Werkzeugleiste 'Formular' in folgender Weise ändert, wenn ein Register markiert ist:

B1

Abbildung 12.6.1.1: Werkzeugleiste 'Formular' – Original

B2

Abbildung 12.6.1.2: Änderung der Werkzeugleiste 'Formular' – Navigation und Button

Klicken Sie anschließend auf den rot markierten Button in der → Abbildung 12.6.1.2, können Sie einerseits alle Beschriftungen der Registerkarten-Reiter sehen und die zu bearbeitende Register-Karte auswählen, was sonst auch mit einem Klick auf einen Registerkarten-Reiter im Register gelingt:

B3

Abbildung 12.6.1.3: Menü der Registerkarten-Reiter-Caption

Alternativ nutzen Sie die angebotene Navigation durch die Register-Karten mit den 4 neuen Schaltflächen → Abbildung 12.6.1.2. Starten Sie das Programm, dann sehen Sie ein funktionsfähiges Register:

B4

Abbildung 12.6.1.4: Register

Der nächste Schritt ist die Umsetzung der geplanten Funktionalität durch die Gestaltung der einzelnen Register-Karten.

12.6.1.1 Projekt 1

Die Besonderheit des ersten Projektes liegt darin, dass zur Entwicklungszeit ein Register mit zwei Register-Karten angelegt wird, wobei die Eigenschaften von Register und Register-Karten im Eigenschaften-Fenster und im Quelltext festgelegt worden sind. Zur Laufzeit kann eine weitere Register-Karte in das Register eingefügt werden (Quelltext 1). Diese 3. Register-Karte können Sie dann ein- und ausblenden sowie die Eigenschaften aller drei Register-Karten auslesen.

Quelltext 1:

Public Sub btnCreateNewTab_Click() 
 If TabStrip1.Count = 2 Then
  ' Eine weitere Register-Karte einfügen
    Inc TabStrip1.Count
  ' Wesentliche Eigenschaften der Register-Karte festlegen
    TabStrip1[2].Caption = "Gambas-Wiki"
    TabStrip1[2].Picture = Picture["icon:/16/connect"] 
    TabStrip1[2].Enabled = True
    TabStrip1[2].Visible = True
  ' 2 Steuer-Elemente in die Register-Karte (Container) einfügen
  ' 1. Steuer-Element: WebView
    hWebView = New WebView(TabStrip1) As "hWebView"
  ' Eigenschaften WebView
    hWebView.Expand = True
  ' 2. Steuer-Element: HBox 
    hhboxNavigation = New HBox(TabStrip1) As "hhboxNavigation"
  ' Eigenschaften HBox
    hhboxNavigation.Height = 24
    hhboxNavigation.Spacing = True
  ' 2 Steuer-Elemente in die HBox (Container) einfügen
  ' 1.Steuer-Element: TextBox
    htxtURL = New TextBox(hhboxNavigation) As "htxtURL"
  ' Eigenschaften TextBox  
    htxtURL.Height = 24
    htxtURL.Background = &HF5FFE6
    htxtURL.Expand = True
    htxtURL.Text = "http://gambaswiki.org/wiki/comp/gb.qt4/tabstrip/findindex"
  ' 2. Steuer-Element: Button
    hbtnOpen = New Button(hhboxNavigation) As "hbtnOpen"
  ' Eigenschaften Button
    hbtnOpen.Height = 24
    hbtnOpen.Width = 32
    hbtnOpen.Picture = Picture["icon:/16/right"] 
 
  ' Register-Karte 'Gambas-Wiki' als aktuelle Register-Karte deklarieren
    TabStrip1.Index = TabStrip1.Count - 1
    htxtURL_Activate() ' Angegebene Webseite → htxtURL.Text anzeigen 
 Endif
End ' btnCreateNewTab_Click()
 
Public Sub btnChangeVisibility_Click()
  If TabStrip1.Count > 2 Then TabStrip1[2].Visible = Not TabStrip1[2].Visible
End ' btnChangeVisibility_Click()
 
Public Sub btnGetInformations_Click()
  Dim i, k As Integer
  Dim hControl As Control
  Dim sMessage As String
 
  sMessage = "<hr><b><font color='Red'>Register-Eigenschaften</font></b><hr>"
  For i = 0 To TabStrip1.Count - 1  
    sMessage &= "<font color='Blue'>Index = " & CStr(i) & "</font>"
    sMessage &= "<br>Register-Karte-" & CStr(i + 1) & "-Beschriftung =  '" 
    sMessage &= TabStrip1[i].Caption & "'"
    sMessage &= "<br>Register-Karte-" & CStr(i + 1) & " aktiviert? " & String.Chr(10230) 
    sMessage &= IIf(TabStrip1[i].Enabled = "T", " Ja", " Nein")
    sMessage &= "<br>Register-Karte-" & CStr(i + 1) & " sichtbar? " & String.Chr(10230) 
    sMessage &= IIf(TabStrip1[i].Visible = "T", " Ja", " Nein")
    sMessage &= "<br>Anzahl der Steuer-Elemente auf der " & CStr(i + 1) 
    sMessage &= ". Register-Karte = " & CStr(TabStrip1[i].Children.Count)
    k = 1
    For Each hControl In TabStrip1[i].Children
      sMessage &= "<br>" & CStr(k) & ". Steuerelement-Name = '" & hControl.Name & "' "
      Inc k
    Next
    sMessage &= "<br><hr>"
  Next   
  Message.Info(sMessage)  
 
End ' btnGetInformations_Click()

In der folgenden Abbildung sehen Sie die generierte 3. Register-Karte mit einem Auszug aus der Gambas-Dokumentation zur Klasse TabStrip (gb.qt4) in einer WebView:

URL

Abbildung 12.6.1.1.1: Register-Karte 3

12.6.1.2 Projekt 2

Das zweite Projekt besitzt als besonderes Merkmal auf der ersten Register-Karte ein weiteres Register mit zwei Register-Karten:

Register

Abbildung 12.6.1.2.1: Einsatz von zwei Registern

Der nächste Quelltext-Ausschnitt aus der Prozedur Form_Open() bezieht sich auf das Register 1 und der Festlegung der Eigenschaften der Register-Karte 2 sowie der darauf platzierten Komponenten:

' Register1-Karte 1 - Editoren ------------------------------
' Register 2 in Register1-Karte 1 ---------------------------
  TabStripEditors.Count = 2
' Beide Editoren füllen die Register-Karten 2.1 und 2.2 jeweils vollständig aus.   
  TabStripEditors.Arrangement = Arrange.Fill
  TabStripEditors.Expand = True ' Kann entfallen wegen Arrange.Fill
  TabStripEditors.Margin = True
  TabStripEditors.Orientation = Align.Bottom
  TabStripEditors[0].Text = "TextArea"
  TabStripEditors[1].Text = "Editor (Syntax-Hervorhebung Gambas)"
 
  hboxFileOpen.Spacing = True
  panSpace1.Expand = True
 
' Register-Karte 2.1 - TextArea
  TextArea1.Background = &HF5FFE6
 
' Register-Karte 2.2 - Editor (gb.qt4.ext)
  Editor1.Highlight = Highlight.Gambas          ' Syntax-Hervorhebung für die Sprache Gambas
  Editor1.KeywordsUseUpperCase = True           ' Groß-Schreibung aller (Gambas-)Schlüssel-Worte
  Editor1.Flags[Editor1.ShowLineNumbers] = True ' Anzeige von Zeilennummern
  Editor1.Flags[Editor1.ShowCurrentLine] = True ' Hervorhebung der aktuellen Zeile
  Editor1.Flags[Editor1.BlendedLimits] = True   ' Trennlinie zwischen den einzelnen Prozeduren
' Anzeige von Register-Karte 2.2 (Editor)
  TabStripEditors.Index = 1

Ab Gambas 3.8.0 sollten Sie den Editor gegen den TextEditor (gb.form.editor) austauschen.

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k12/k12.6/k12.6.1/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge