Benutzer-Werkzeuge

Webseiten-Werkzeuge


k10:k10.5:k10.5.4:start

10.5.4 With .. End With

Die Syntax der With…End_With-Kontrollstruktur ist einfach:

WITH Object Name
  ... 
END WITH
  • Zwischen dem With und dem Ende der With-Instruktion beginnt ein Ausdruck mit einem Punkt und stellt so den Bezug (→ Objekt-Selektor) zu dem nach With notierten Objekt her.
  • Sie können With…End_With-Strukturen auch verschachteln.

Beispiel 1

With btnCancel
  .Text = "Cancel"
End With ' Äquivalent zur Anweisung: btnCancel.Text = "Cancel"

Die Stärke der With…End_With-Struktur zeigt sich erst dann, wenn Sie zum Beispiel viele Eigenschaftswerte für ein Objekt setzen müssen, so wie Sie das im nächsten Quelltext-Ausschnitt aus der Datei ../src/gb.form/ListContainer.class sehen.

Beispiel 2

Public Sub _new() 
 
  $hScrollView = New ScrollView(Me) As "ScrollView" 
  $hScrollView.Resize(80, 60) 
  $hScrollView.Name = Me.Name & ".ScrollView" 
 
  $hTimer = New Timer As "Child" 
  $hTimer.Delay = 80 
 
  With $hScrollView 
    .Border = True 
    .ScrollBar = Scroll.Vertical 
    .Background = Color.TextBackground 
    .Arrangement = Arrange.Vertical 
    $iSaveBackground = .Background 
    $iSaveForeground = Color.TextForeground 
  End With 
 
  Me._Container = $hScrollView 
  Me.Arrangement = Arrange.Vertical 
 
End ' _new()

Seit Gambas 3.5 können Sie die With…End_With-Syntax auch für Elemente eines Arrays oder einer Collection in zwei unterschiedlichen Schreibweisen nutzen:

Beispiel 3

Public Sub Main()
  Dim hArray As New String[]
  Dim hCollection As New Collection
  Dim i As Integer
 
  hArray.Add("Maria")
  hArray.Add("Peter")
 
  With hArray
    Print .[0], !"1" ' !"1" ist äquivalent für .[1] 
  End With
 
  hCollection["1"] = "Maria"
  hCollection.Add("Peter", "2")
  hCollection["3"] = "Uta"
  hCollection["4"] = "Eva"
 
  With hCollection
    !"5" = "Susi" ' Äquivalent für .["5"] = "Susi"
    For i = 1 To .Count
        Print .[Str(i)],
    Next
  End With  
End ' Main()

Die Prozedur Main() erzeugt folgende Ausgaben in der Konsole:

Maria   Peter
Maria   Peter   Uta     Eva     Susi

Wenn Sie sich die drei Beispiele genau ansehen, werden Sie sicher erkennen: Sie können einiges an Schreibarbeit mit der With…End_With-Struktur sparen und dem Quelltext Struktur geben – mehr nicht.

Download

k10/k10.5/k10.5.4/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge