Willkommen

CH Splitter 1.0

'CH Splitter' ist eine ActiveX-Komponente, welche Ihnen die Möglichkeit gibt, Forms und UserControls in einzelne Bereiche aufzuteilen, deren Größe vom Benutzer angepasst werden kann. Dadurch ist es möglich flexible Benutzeroberflächen zu entwickeln, so wie Sie es z.B. von Outlook Express gewohnt sind.

Diese Hilfedatei wird mit Version 1.0 ausgeliefert.

1. Installation und Registrierung

2. Kurzanleitung

3. Bestandteile

CH Splitter besteht aus 3 Teilen:

  • Split-Steuerelement - das eigentliche Steuerelement, welches auf einer Form\einem UserControl plaziert wird und als Container dient
  • Section-Objekt - steht für jeweils eine Sektion (=Teilbereich) auf dem Split-Steuerelement
  • Sections-Auflistung - Auflistung der einem Split-Steuerelement zugeordneten Section-Objekte

THIS SOFTWARE AND THE ACCOMPANYING FILES ARE SOLD 'AS IS' AND WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. Test the program thoroughly with non-critical data before relying on it. The user must assume the entire risk of using the program. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.


Installation und Registrierung

Installation:

1. In WinZip wählen Sie Installieren oder doppelklicken Sie auf Setup.exe.

2. Folgen Sie den Installationsanweisungen.

3. Öffnen Sie den Komponenten-Dialog in VB (Projekt | Komponenten) und wählen Sie "CH Splitter 1.0 Trial Version".

In der Zip-Datei sind außerdem mehrere Beispielprojekte enthalten, welche die verschiedenen Einsatzmöglichkeiten von 'CH Splitter' demonstrieren.

Sollten Sie irgendwelche Kommentare\Verbesserungsvorschläge haben oder einen Fehler entdecken, wenden Sie sich bitte an folgende Email-Adresse: CHuebner@ch-software.de

Registrierung:

Sie können Ihre Kopie von 'CH Splitter' über www.ShareIt.com registrieren lassen. Die Registrierungsgebühr beträgt 25,00 US Dollar.

Der vollständige VB6-Quellcode ist ebenfalls erhältlich (90,00 US Dollar) und kann problemlos in Ihre VB6-Anwendungen einkompiliert werden.


Kurzanleitung

1. Legen Sie ein neues Projekt mit einer Form an.

2. Fügen Sie der Form ein neues Split-Steuerelement hinzu. Es wird sich automatisch an den linken Rand der Form ausrichten.

3. Plazieren Sie 2 TreeViews auf dem Split-Steuerelement (Appearance = ccFlat) und ein ListView (BorderSryle = ccNone) auf der Form.

4. Fügen Sie im Load-Ereignis der Form folgenden Code ein, um 2 Sektionen hinzuzufügen:

Dim secX As Section
With Split1.Sections
  Set secX = .Add("Sektion1", "Sektion 1", , TreeView1)
  Set secX = .Add("Sektion2", "Sektion 2", , TreeView2)
End With
Set Split1.OuterControl = ListView1

5. Fügen Sie im Resize-Ereignis der Form folgenden Code ein:

Split1.Refresh

6. Fügen Sie im ReArrange-Ereignis des Split-Steuerelements folgenden Code ein, damit die beiden Sektionen immer gleich groß sind. ClientSize gibt den zur Verfügung stehenden Platz an. CountVisible gibt die Anzahl der sichtbaren Sektionen zurück. Der zur Verfügung stehende Platz wird durch die Anzahl der sichtbaren Sektionen geteilt und anschließend der Size-Eigenschaft einer jeden Sektion zugewiesen:

Dim Sec As Section
Dim SectionNumber As Long
Dim SizeH As Single
If ReArrangeType = splReArrangeType.splNormal Then
   With Split1
     SectionNumber = .Sections.CountVisible
     If SectionNumber = 0 Then Exit Sub
     SizeH = .ClientSize / SectionNumber
     For Each Sec In .Sections
       If Sec.Visible Then Sec.Size = SizeH
     Next Sec
    .Refresh
   End With
End If

7. Starten Sie das Projekt.


Split-Steuerelement

Eigenschaften Methoden Ereignisse

Ein Split-Steuerelement dient in der Regel zur Aufteilung einer Form\eines UserControls in zwei Bereiche, deren Größe vom Benutzer mit Hilfe der Maus geändert werden kann. Der eine Bereich wird vom Split-Steuerelement ausgefüllt, welches dabei als Container für ein oder mehrerer Steuerelemente (z.B. TreeView) fungiert. Der zweite Bereich wird durch ein beliebiges Steuerelement (z.B. ein ListView) ausgefüllt. Das Besondere daran ist, dass das Split-Steuerelement selbst auch in einzelne Bereiche unterteilt werden kann und Sie diesen Bereichen (Sektionen) jeweils ein Steuerelement zuordnen können.

Syntax

Split

Anmerkungen

Nachdem Sie ein Split-Steuerelement erstellt haben, können Sie dieses in mehrere Bereiche (Sektionen) aufteilen, indem Sie der Sections-Auflistung einzelne Section-Objekte hinzufügen. Jede Sektion besteht dabei standardmäßig aus einem Kopfteil, welcher eine Beschriftung anzeigen kann, und aus einem Rumpfteil, auf dem ein Steuerelement platziert ist. Die Sektionen können - wie das Split-Steuerelement auch - vom Benutzer in ihrer Größe angepasst werden.

Über die OuterControl-Eigenschaft können Sie ein Steuerelement festlegen, das den freien (= nicht vom Split-Steuerelement belegten) Bereich auf dem Container (Form\UserControl) einnehmen soll und auch bei Größenänderung des Split-Steuerelements automatisch angepasst wird.

Ein Split-Steuerelement wird normalerweise an eine der vier Seiten des Containers ausgerichtet (d.h. die Align-Eigenschaft wird z.B. auf vbAlignLeft gesetzt). Es ist aber auch möglich ein nicht ausgerichtetes Split-Steuerelement (vbAlignNone) als OuterControl eines anderen Split-Steuerelements zu verwenden. Die einzelnen Sektionen können wiederum von nicht ausgerichteten Split-Steuerelementen eingenommen werden. Diese Flexibilität ermöglicht es Ihnen, jede erdenkliche Unterteilung einer Form\eines UserControls zu realisieren.


ClientSize-Eigenschaft

Gibt den horizontalen bzw. vertikalen Bereich (abhängig vom Align) an, der für die Darstellung der Sektionen zur Verfügung steht.

Zur Entwurfszeit nicht verfügbar. Schreibgeschützt.

Syntax

Split.ClientSize

Anmerkungen

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Bei einem vertikal ausgerichteten Split-Steuerelement (links oder rechts ausgerichtet) gibt die ClientSize-Eigenschaft den gleichen Wert wie die ScaleHeight-Eigenschaft zurück. Bei horizontaler Ausrichtung (oben oder unten ausgerichtet) wird der Wert der ScaleWidth-Eigenschaft zurückgegeben (allerdings nicht in Twips, sondern in der Maßeinheit des Containers!).

Der Vorteil bei der Verwendung der ClientSize-Eigenschaft gegenüber von ScaleWidth\ScaleHeight besteht darin, dass nicht unterschieden werden muss, ob das Split-Steuerelement gerade horizontal oder vertikal ausgerichtet ist, und dass keine Umrechnung der Maßeinheiten erforderlich ist.

Folgender Code bewirkt, dass alle sichtbaren Sektionen gleich groß sind. Dabei ist es egal, welche Ausrichtung das Split-Steuerelement gerade hat:

Dim Sec As Section
Dim SectionNumber As Long
Dim NewSize As Single

With Split1
  SectionNumber = .Sections.CountVisible
  If SectionNumber = 0 Then Exit Sub
  NewSize = .ClientSize / SectionNumber
  For Each Sec In .Sections
      If Sec.Visible Then Sec.Size = NewSize
  Next Sec
  .Refresh
End With

Beachten Sie hierbei, dass die ClientSize-Eigenschaft genau wie die Size-Eigenschaft eines Section-Objektes in der Maßeinheit des Containers angegeben, auf dem sich das Split-Steuerelement befindet. Aus diesem Grund ist keine Umrechnung der Maßeinheit erforderlich, wie das bei Verwendung von ScaleWidth\ScaleHeight anstelle von ClientSize der Fall wäre!


InnerBorderSize-Eigenschaft

Gibt den Abstand zwischen den einzelnen Sektionen an oder legt diesen fest. Der freie Bereich zwischen zwei Sektionen dient zur Größenänderung der Sektionen durch den Benutzer mit Hilfe der Maus.

Syntax

Split.InnerBorderSize [= Zahl]

Anmerkungen

Die Voreinstellung ist 4 Pixel.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Wenn Sie diese Eigenschaft zur Laufzeit ändern, müssen Sie die Refresh-Methode aufrufen, um die Änderung wirksam zu machen.


InnerResizeDirect-Eigenschaft

Gibt einen Wert zurück oder legt einen Wert fest, der bestimmt, ob sich die Größe der Sektionen beim Anpassen durch den Benutzer sofort ändert oder ob erst ein gepunkteter Balken angezeigt wird.

Syntax

Split.InnerResizeDirect [= boolesch]

Einstellungen

Die Einstellungen für boolesch sind:

Einstellung | Beschreibung
True | (Voreinstellung) Die Größe der Sektionen wird sofort angepasst.
False | Es wird zunächst ein gepunkteter Balken angezeigt. Die Größenänderung erfolgt erst beim Loslassen der Maustaste.

Anmerkungen

Setzen Sie diese Eigenschaft auf False, wenn die auf dem Split-Steuerelement positionierten Steuerelemente sehr aufwendig gezeichnet werden müssen und daher ein Flackern verursachen.


MarginOppositeResize-Eigenschaft

Gibt die Breite bzw. Höhe des äußeren Randes an, der dem zur Größenanpassung dienenden Rand gegenüber liegt, oder legt diese fest. Bei linksausgerichtetem Split-Steuerelement (vbAlignLeft) bezieht sich diese Eigenschaft auf den linken Rand.

Syntax

Split.MarginOppositeResize [= Zahl]

Beziehung zwischen Align des Split-Steuerelements und absolutem Bezugsrand:

Align | Bezugsrand
vbAlignLeft | linker Rand
vbAlignRight | rechter Rand
vbAlignTop | oberer Rand
vbAlignBottom | unterer Rand

Anmerkungen

Die Voreinstellung ist 0.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Wenn das Split-Steuerelement nicht ausgerichtet ist (vbAlignNone), dann ist der absolute Bezugsrand abhängig von der VerticalIfNoAlign-Eigenschaft.

Wenn Sie diese Eigenschaft zur Laufzeit ändern, müssen Sie die Refresh-Methode aufrufen, um die Änderung wirksam zu machen.


MarginVBottomHRight-Eigenschaft

Gibt die Höhe des unteren Randes an, wenn das Split-Steuerelement vertikal ausgerichtet ist (links oder rechts ausgerichtet), bzw. die Breite des rechten Randes bei horizontaler Ausrichtung (oben oder unten ausgerichtet) oder legt diese fest.

Syntax

Split.MarginVBottomHRight [= Zahl]

Beziehung zwischen Align des Split-Steuerelements und absolutem Bezugsrand:

Align | Bezugsrand
vbAlignLeft, vbAlignRight | unterer Rand
vbAlignTop, vbAlignBottom | rechter Rand

Anmerkungen

Die Voreinstellung ist 0.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Wenn Sie diese Eigenschaft zur Laufzeit ändern, müssen Sie die Refresh-Methode aufrufen, um die Änderung wirksam zu machen.


MarginVTopHLeft-Eigenschaft

Gibt die Höhe des oberen Randes an, wenn das Split-Steuerelement vertikal ausgerichtet ist (links oder rechts ausgerichtet), bzw. die Breite des linken Randes bei horizontaler Ausrichtung (oben oder unten ausgerichtet) oder legt diese fest.

Syntax

Split.MarginVTopHLeft [= Zahl]

Beziehung zwischen Align des Split-Steuerelements und absolutem Bezugsrand:

Align | Bezugsrand
vbAlignLeft, vbAlignRight | oberer Rand
vbAlignTop, vbAlignBottom | linker Rand

Anmerkungen

Die Voreinstellung ist 0.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Wenn Sie diese Eigenschaft zur Laufzeit ändern, müssen Sie die Refresh-Methode aufrufen, um die Änderung wirksam zu machen.


MaxSizeByUser-Eigenschaft

Gibt die größte Breite bzw. Höhe des Split-Steuerelements an, die der Benutzer mit der Maus einstellen kann, oder legt diese fest.

Syntax

Split.MaxSizeByUser [= Zahl]

Anmerkungen

Die Voreinstellung ist 0 (keine Begrenzung der maximalen Breite\Höhe). Allerdings entspricht die maximale Breite\Höhe, die der Benutzer mit der Maus einstellen kann, höchstens der Breite\Höhe des Containers, auf dem sich das Split-Steuerelement befindet.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.


MinSizeByUser-Eigenschaft

Gibt die kleinste Breite bzw. Höhe des Split-Steuerelements an, die der Benutzer mit der Maus einstellen kann, oder legt diese fest.

Syntax

Split.MinSizeByUser [= Zahl]

Anmerkungen

Die Voreinstellung ist 0 (keine Mindestbreite\-höhe). Allerdings entspricht die tatsächliche Breite\Höhe des Split-Steuerelements mindestens der ResizeBorderSize-Eigenschaft.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.


OuterControl-Eigenschaft

Gibt das Steuerelement zurück, das den freien Innenbereich des Containers einnehmen soll, oder legt dieses fest.

Zur Entwurfszeit nicht verfügbar.

Syntax

Split.OuterControl

Set Split.OuterControl = Steuerelement

Anmerkungen

Steuerelement muss sich auf demselben Container wie das Split-Steuerelement befinden und darf, sofern es über eine Align-Eigenschaft verfügt, nicht oben, unten, rechts oder links ausgerichtet sein.

Wenn Sie diese Eigenschaft ändern, müssen Sie die Refresh-Methode aufrufen, um die Änderung wirksam zu machen.


OuterResizeDirect-Eigenschaft

Gibt einen Wert zurück oder legt einen Wert fest, der bestimmt, ob sich die Größe des Split-Steuerelements beim Anpassen durch den Benutzer sofort ändert oder ob erst ein gepunkteter Balken angezeigt wird.

Syntax

Split.OuterResizeDirect [= boolesch]

Einstellungen

Die Einstellungen für boolesch sind:

Einstellung | Beschreibung
True | Die Größe des Split-Steuerelements wird sofort angepasst.
False | (Voreinstellung) Es wird zunächst ein gepunkteter Balken angezeigt. Die Größenänderung erfolgt erst beim Loslassen der Maustaste.

Anmerkungen

Setzen Sie diese Eigenschaft auf False, wenn die auf dem Split-Steuerelement positionierten Steuerelemente oder das durch die OuterControl-Eigenschaft festgelegte Steuerelement sehr aufwendig gezeichnet werden müssen und daher ein Flackern verursachen.


Resizeable-Eigenschaft

Resizeable-Eigenschaft (Split-Steuerelement, Section-Objekt)

Gibt einen Wert zurück oder legt einen Wert fest, der bestimmt, ob die Größe durch den Benutzer mit Hilfe der Maus geändert werden kann.

Syntax

Objekt.Resizeable [= boolesch]

Objekt ist der Name eines Split-Steuerelements oder eines Section-Objekts.

Einstellungen

Die Einstellungen für boolesch sind:

Einstellung | Beschreibung
True | (Voreinstellung) Die Größe kann geändert werden.
False | Die Größe kann nicht geändert werden.

Anmerkungen

Ist die Resizeable-Eigenschaft eines Split-Steuerelements auf False gesetzt, so kann das Split-Steuerelement nicht vom Benutzer in seiner Größe geändert werden. Die einzelnen Sektionen sind davon jedoch nicht betroffen und können weiterhin vom Benutzer angepasst werden (sofern deren Resizeable-Eigenschaft True ist).

Wenn Sie diese Eigenschaft zur Laufzeit ändern, müssen Sie die Refresh-Methode des Split-Steuerelements aufrufen, um die Änderung wirksam zu machen.


ResizeBorderSize-Eigenschaft

Gibt die Breite bzw. Höhe (abhängig vom Align) des äußeren Randes an, der zur Größenanpassung dient, oder legt diese fest. Bei linksausgerichtetem (vbAlignLeft) Split-Steuerelement bezieht sich diese Eigenschaft auf den rechten Rand.

Syntax

Split.ResizeBorderSize [= Zahl]

Beziehung zwischen Align des Split-Steuerelements und absolutem Bezugsrand:

Align | Bezugsrand
vbAlignLeft | rechter Rand
vbAlignRight | linker Rand
vbAlignTop | unterer Rand
vbAlignBottom | oberer Rand

Anmerkungen

Die Voreinstellung ist 4 Pixel.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Wenn das Split-Steuerelement nicht ausgerichtet ist (vbAlignNone), dann ist der absolute Bezugsrand abhängig von der VerticalIfNoAlign-Eigenschaft.

Wenn Sie diese Eigenschaft zur Laufzeit ändern, müssen Sie die Refresh-Methode aufrufen, um die Änderung wirksam zu machen.


ScaleLeft-, ScaleTop-Eigenschaften (Split-Steuerelement)

Geben die horizontalen (ScaleLeft) und vertikalen (ScaleTop) Koordinaten für den linken und oberen Rand eines Split-Steuerelements zurück.

Zur Entwurfszeit nicht verfügbar. Schreibgeschützt.

Syntax

Split.ScaleLeft

Split.ScaleTop

Anmerkungen

Diese Eigenschaften werden immer in Twips angegeben.

Für die Nutzung des Split-Steuerelements finden diese Eigenschaften eigentlich keine Verwendung, da sie lediglich zur Vollständigkeit und Ergänzung der ScaleWidth-, ScaleHeight-, und ClientSize-Eigenschaften implementiert wurden.


ScaleHeight-, ScaleWidth-Eigenschaften (Split-Steuerelement)

Geben den vertikalen (ScaleHeight) und horizontalen (ScaleWidth) Bereich an, der für die Darstellung der Sektionen zur Verfügung steht.

Zur Entwurfszeit nicht verfügbar. Schreibgeschützt.

Syntax

Split.ScaleHeight

Split.ScaleWidth

Anmerkungen

Diese Eigenschaften werden immer in Twips angegeben.

Bei einem vertikal ausgerichteten Split-Steuerelement (links oder rechts ausgerichtet) entspricht die ScaleWidth-Eigenschaft der Breite des Split-Steuerelements abzüglich des linken und rechten Randes. Im Unterschied dazu entspricht die ScaleHeight-Eigenschaft der Höhe des Split-Steuerelements abzüglich des oberen Randes, des unteren Randes und dem X-fachen der InnerBorderSize-Eigenschaft, wobei X der Anzahl der Sektionen - 1 entspricht (X >= 0).

Die ScaleHeight- und ScaleWidth-Eigenschaften werden benötigt, um den zur Verfügung stehenden Platz zu ermitteln, den sich die Sektionen teilen müsse. Wenn z.B. in einem vertikal ausgerichteten Split-Steuerelement alle Sektionen gleich groß (in diesem Fall: gleich hoch) sein sollen, muss die ScaleHeight-Eigenschaft durch die Anzahl der (sichtbaren) Sektionen geteilt werden. Der errechnete Wert muss dann der Size-Eigenschaft eines jeden Section-Objektes zugewiesen werden. Bei einem horizontal ausgerichteten Split-Steuerelement müsste dazu jedoch anstelle der ScaleHeight- die ScaleWidth-Eigenschaft verwendet werden. Um die aktuelle Ausrichtung nicht berücksichtigen zu müssen, verwenden Sie die ClientSize-Eigenschaft!


Sections-Eigenschaft

Gibt einen Verweis auf eine Auflistung von Section-Objekten eines Split-Steuerelements zurück.

Zur Entwurfszeit nicht verfügbar. Schreibgeschützt.

Syntax

Split.Sections

Anmerkungen

Sie können Section-Objekte verändern, hinzufügen oder entfernen, indem Sie die dafür vorgesehenen Standard-Auflistungsmethoden (wie z.B. die Add- und Remove-Methode) verwenden. Der Zugriff auf einzelne Elemente der Auflistung kann mit Hilfe des zugehörigen Indexes (1-basiert) oder eines eindeutigen Schlüssels (in der Key-Eigenschaft abgelegt) erfolgen.


VerticalIfNoAlign-Eigenschaft

Gibt einen Wert zurück oder legt einen Wert fest, der bestimmt, ob die Sektionen untereinander oder nebeneinander angezeigt werden, wenn das Split-Steuerelement nicht ausgerichtet ist (vbAlignNone).

Syntax

Split.VerticalIfNoAlign [= boolesch]

Einstellungen

Die Einstellungen für boolesch sind:

Einstellung | Beschreibung
True | (Voreinstellung) Die Sektionen werden untereinander (von oben nach unten) angezeigt. Das Split-Steuerelement wird dargestellt, als wenn es vertikal ausgerichtet wäre (vbAlignLeft oder vbAlignRight). Die ResizeBorderSize-Eigenschaft bezieht sich auf den linken Rand.
False | Die Sektionen werden nebeneinander (von links nach rechts) angezeigt. Das Split-Steuerelement wird dargestellt, als wenn es horizontal ausgerichtet wäre (vbAlignTop oder vbAlignBottom). Die ResizeBorderSize-Eigenschaft bezieht sich auf den oberen Rand.

Anmerkungen

Diese Eigenschaft ist nur dann von Bedeutung, wenn das Split-Steuerelement nicht ausgerichtet ist, d.h. die Align-Eigenschaft ist auf vbAlignNone gesetzt. Die Größe des Split-Steuerelements kann in diesem Fall nicht vom Benutzer geändert werden.

Ein nicht ausgerichtetes Split-Steuerelement kann z.B. auch als OuterControl eines anderen Split-Steuerelements bzw. als ContainedControl einer Sektion dienen. In diesem Fall ist es besonders nützlich, festlegen zu können, ob die Sektionen des nicht ausgerichteten Split-Steuerlements nebeneinander oder überenander dargestellt werden.


Refresh-Methode

Bewirkt die Neudarstellung des Split-Steuerelements.

Syntax

Split.Refresh

Anmerkungen

Verwenden Sie die Refresh-Methode, um Änderungen am Split-Steuerelement oder den Section-Objekten wirksam werden zu lassen. Wenn Sie z.B. die Schriftfarbe eines Section-Objektes ändern, muss anschließend die Refresh-Methode aufgerufen werden:

Split.Sections(1).HeadForeColor = vbRed
Split.Refresh


ClickAway-Ereignis

Tritt auf, wenn der Benutzer das Kreuz im Kopf einer Sektion angeklickt hat, um die Sektion unsichtbar zu machen.

Syntax

Private Sub Split_ClickAway(Sec As chSplitter.Section, Cancel As Boolean)

Die Syntax des ClickAway-Ereignisses besteht aus folgenden Teilen:

Teil | Beschreibung
Split | Ein Split-Steuerelement.
Sec | Ein Verweis auf das Section-Objekt, dessen Kreuz vom Benutzer angeklickt wurde.
Cancel | Eine boolesche Variable, die bestimmt, ob die betreffende Sektion unsichtbar gemacht wird. Wenn Cancel den Wert False hat, wird die Sektion unsichtbar gemacht. Ist die betreffende Sektion die einzige noch sichtbare Sektion, so wird auch das gesamte Split-Steuerelement unsichtbar. Durch Festlegen von Cancel auf True bleibt die betreffende Sektion sichtbar.

Anmerkungen

Hat der Benutzer alle Sektionen durch Klicken auf die entsprechenden Kreuze unsichtbar gemacht, so wird auch das gesamte Split-Steuerelement unsichtbar gemacht und anschließend das Invisible-Ereignis ausgelöst. Soll der ursprüngliche Zustand wieder hergestellt werden, so müssen alle Sektionen und das Split-Steuerelement sichtbar gemacht werden:

Dim sec As Section
For Each sec In Split.Sections
    sec.Visible = True
Next sec
Split.Visible = True


Invisible-Ereignis

Tritt auf, nachdem der Benutzer alle Sektionen unsichtbar gemacht hat und das Split-Steuerelement dadurch unsichtbar geworden ist.

Syntax

Private Sub Split_Invisible()

Anmerkungen

Sie können folgenden Code verwenden, um das Split-Steuerelement mit all seinen Sektionen wieder sichtbar zu machen:

Dim sec As Section
For Each sec In Split.Sections
    sec.Visible = True
Next sec
Split.Visible = True


ReArrange-Ereignis

Tritt auf, wenn sich die Größe des Split-Steuerelements oder der Sektionen geändert hat oder wenn das Split-Steuerelement sichtbar wird.

Syntax

Private Sub Split_ReArrange(ByVal ReArrangeType As splReArrangeType)

Die Syntax des ReArrange-Ereignisses besteht aus folgenden Teilen:

Teil | Beschreibung
Split | Ein Split-Steuerelement.
ReArrangeType | Eine Enum-Variable, die den Grund für das Auslösen des ReArrange-Ereignisses näher bestimmt, wie unter Einstellungen beschrieben.

Einstellungen

Die Einstellungen von ReArrangeType sind:

Konstante | Einstellung | Beschreibung
splNormal | 0 | Das Split-Steuerelement wurde sichtbar gemacht oder die Größe des Containers hat sich geändert (und damit auch der für die Sektionen zur Verfügung stehende Platz). Die Größe der Sektionen muss neu berechnet und angepasst werden.
splUserInternal | 1 | Der Benutzer hat die Größe der Sektionen mit Hilfe der Maus geändert.
splUserExternal | 2 | Der Benutzer hat die Größe des Split-Steuerelements mit Hilfe der Maus geändert.

Anmerkungen

Nutzen Sie das ReArrange-Ereignis, um die Größen der einzelnen Sektionen neu festzulegen, wenn ReArrangeType = splNormal ist. Die ClientSize-Eigenschaft des Split-Steuerelements gibt den für die Sektionen zur Verfügung stehenden Platz zurück. Die CountVisible-Eigenschaft der Sections-Auflistung liefert die Anzahl der sichtbaren Sektionen. Im einfachsten Fall teilen Sie den verfügbaren Platz durch die Anzahl der sichtbaren Sektionen und weisen den errechneten Wert der Size-Eigenschaft eines jeden Section-Objektes zu:

Private Sub Split_ReArrange(ByVal ReArrangeType As splReArrangeType)
Dim Sec As Section
Dim SectionNumber As Long
Dim SizeH As Single

If ReArrangeType = splReArrangeType.splNormal Then
With Split
SectionNumber = .Sections.CountVisible
If SectionNumber = 0 Then Exit Sub
SizeH = .ClientSize / SectionNumber
For Each Sec In .Sections
If Sec.Visible Then
Sec.Size = SizeH
Next Sec
.Refresh
End With
End If

End Sub

Das ReArrange-Ereignis kann aber auch zur manuellen Ausrichtung (unabhängig von ReArrangeType) der Steuerelemente dienen, die sich auf dem Split-Steuerelement befinden und\oder den freien Bereich auf dem Container einnehmen sollen. Wenn Sie die Ausrichtung nicht automatisch vom Split-Steuerelement vornehmen lassen wollen, können Sie die ScaleLeft-, ScaleTop-, ScaleWidth- und ScaleHeight-Eigenschaften der Section-Objekte benutzen. Im einfachsten Fall könnte das so aussehen:

 If ReArrangeType = splReArrangeType.splNormal Then
    'Neuberechnung der Größe der Sektionen...
 End If

'Manuelle Ausrichtung eines TreeViews, das sich auf
'dem Split-Steuerelement befindet:
 With Split.Sections(1)
   TreeView1.Move .ScaleLeft, .ScaleTop, .ScaleWidth, .ScaleHeight
   TreeView1.Visible = .Visible
 End With

'Manuelle Ausrichtung eines ListViews, das sich auf
'derselben Form wie das Split-Steuerelement befindet.
'Der folgende Code muss im Resize-Eventhandler der Form
'wiederholt werden:
If Me.ScaleWidth >= Split.Width then
   ListView1.Move Split.Width, 0, Me.ScaleWidth - Split.Width, Me.ScaleHeight
End If

Beachten Sie, dass es normalerweise keinen Grund geben sollte die Steuerelemente manuell auszurichten.


ShowHeadMenu-Ereignis

Tritt auf, wenn der Benutzer den Bereich im Kopf einer Sektion angeklickt hat, der zum Anzeigen eines Menüs dient.

Syntax

Private Sub Split_ShowHeadMenu(Sec As chSplitter.Section, ByVal X As Long, ByVal Y As Long)

Die Syntax des ShowHeadMenu-Ereignisses besteht aus folgenden Teilen:

Teil | Beschreibung
Split | Ein Split-Steuerelement.
Sec | Ein Verweis auf das Section-Objekt, dessen Menü angezeigt werden soll.
X, Y | Die Koordinate des Punktes, an dem das Menü angezeigt werden sollte (in Pixel).

Anmerkungen

Wenn dieses Ereignis auftritt, sollten Sie das in der HeadMenu-Eigenschaft des betreffenden Section-Objektes abgelegte Menü mit Hilfe der PopupMenu-Methode anzeigen. Dabei können Sie auch einen Menüpunkt angeben, der fett formatiert angezeigt werden soll. Beachten Sie, dass die Koordinaten in Pixel übergeben werden, während die PopupMenu-Methode die Koordinaten in der Maßeinheit der\des betreffenden Form\UserControls erwartet. Daher müssen die Werte zuvor in die richtige Maßeinheit umgerechnet werden:

In Forms\UserControls:

Private Sub Split_ShowHeadMenu(Sec As chSplitter.Section, ByVal X As Long, ByVal Y As Long)
 PopupMenu Sec.HeadMenu, , ScaleX(X, vbPixels, ScaleMode), ScaleY(Y, vbPixels, ScaleMode)
End Sub

In MDIForms:

Private Sub Split_ShowHeadMenu(Sec As chSplitter.Section, ByVal X As Long, ByVal Y As Long)
 PopupMenu Sec.HeadMenu, , X * Screen.TwipsPerPixelX, Y * Screen.TwipsPerPixelY
End Sub


Count-Eigenschaft

Gibt die Anzahl der Section-Objekte in der Sections-Auflistung eines Split-Steuerelements zurück.

Schreibgeschützt.

Syntax

Sections.Count

Sections ist die Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Wenn Sie nur die Anzahl der momentan sichtbaren Sektionen ermitteln wollen, können Sie stattdessen die CountVisible-Eigenschaft verwenden.


CountVisible-Eigenschaft

Gibt die Anzahl der sichtbaren (Visible = True) Section-Objekte in der Sections-Auflistung eines Split-Steuerelements zurück.

Schreibgeschützt.

Syntax

Sections.CountVisible

Sections ist die Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Die Anzahl der momentan sichtbaren Sektionen ist z.B. dann von Bedeutung, wenn alle Sektionen gleich groß sein sollen. In diesem Fall muss der zur Verfügung stehende Platz mit Hilfe der ClientSize-Eigenschaft des Split-Steuerelements ermittelt und durch die Anzahl der sichtbaren Sektionen geteilt werden. Der so berechnete Wert muss anschließend der Size-Eigenschaft eines jeden Section-Objektes zugewiesen werden.


Add-Methode

Fügt der Sections-Auflistung eines Split-Steuerelements ein Section-Objekt hinzu.

Syntax

Sections.Add(Key as String, [HeadText as String = ""], [HeadHeight], [ContainedControl as Object])

Die Syntax der Add-Methode besteht aus folgenden Teilen:

Teil | Beschreibung
Sections | Die Sections-Auflistung eines Split-Steuerelements.
Key | Erforderlich. Eine eindeutige Zeichenfolge, die zum Abrufen des Section-Objekts mit Hilfe der Item-Methode verwendet werden kann.
HeadText | Optional. Gibt den Text an, der im Kopf der Sektion angezeigt wird, sofern HeadHeight > 0.
HeadHeight | Optional. Gibt die Höhe des Kopfes der Sektion an. Wird dieser Parameter weggelassen, so erhält die Sektion eine Kopfhöhe von 22 Pixeln.
ContainedControl | Optional. Ein Steuerelement, das automatisch an die Größe des Clientbereichs der Sektion angepasst wird. Lassen Sie diesen Parameter aus, wenn Sie beabsichtigen, die auf dem Split-Steuerelement befindlichen Steuerelemente manuell auszurichten.

Anmerkungen

Die Elemente in der Sections-Auflistung beginnen mit dem Index 1.

Wird versucht der Sections-Auflistung ein Section-Objekt mit einem Key hinzuzufügen, welcher schon vergeben ist, so wird der Laufzeitfehler 457 "Dieser Schlüssel ist bereits einem Element dieser Auflistung zugeordnet" ausgelöst.

Die Add-Methode gibt einen Verweis auf das neu erstellte Section-Objekt als Ergebnis zurück, so dass Sie diesen Verweis zum Festlegen der Eigenschaften eines neuen Section-Objekts verwenden können.

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um die Änderung wirksam zu machen. Beachten Sie, dass vorher die Größe (Size-Eigenschaft) der neu hinzugefügten Sektion und der bereits vorhandenen, sichtbaren Sektionen angepasst werden muss (die Summe der Größen der sichtbaren Sektionen sollte normalerweise gleich der ClientSize-Eigenschaft des Split-Steuerelements sein).


Clear-Methode

Entfernt alle Section-Objekte aus der Sections-Auflistung.

Syntax

Sections.Clear

Sections ist die Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Verwenden Sie die Remove-Methode, wenn Sie nur eine Sektion aus der Sections-Auflistung entfernen möchten.


Remove-Methode

Entfernt ein Section-Objekt aus der Sections-Auflistung eines Split-Steuerelements.

Syntax

Sections.Remove Index

Die Syntax der Remove-Methode besteht aus folgenden Teilen:

Teil | Beschreibung
Sections | Die Sections-Auflistung eines Split-Steuerelements.
Index | Erforderlich. Ein Ausdruck, der die Position eines Section-Objektes in der Auflistung angibt. Wenn es sich um einen numerischen Ausdruck handelt, muss Index eine Zahl von 1 bis zum Wert der Count-Eigenschaft der Sections-Auflistung sein. Handelt es sich um einen Zeichenfolgenausdruck, muss Index mit der Key-Eigenschaft übereinstimmen.

Anmerkungen

Die Elemente in der Sections-Auflistung beginnen mit dem Index 1.

Wenn der als Index angegebene Wert auf kein bereits existierendes Section-Objekt in der Sections-Auflistung verweist, so wird der Laufzeitfehler 5 "Ungültiger Prozeduraufruf oder ungültiges Argument" bzw. Laufzeitfehler 9 "Index außerhalb des gültigen Bereichs" ausgelöst.

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um die Änderung wirksam zu machen. Beachten Sie, dass vorher die Größe (Size-Eigenschaft) der restlichen, sichtbaren Sektionen angepasst werden muss (die Summe der Größen der sichtbaren Sektionen sollte normalerweise gleich der ClientSize-Eigenschaft des Split-Steuerelements sein).


ContainedControl-Eigenschaft

Gibt das Steuerelement zurück, das den Innenbereich einer Sektion einnehmen soll, oder legt dieses fest.

Syntax

Section.ContainedControl

Set Section.ContainedControl = Steuerelement

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Steuerelement muss sich auf dem Split-Steuerelement befinden. Ist dies nicht der Fall, so wird der Laufzeitfehler 380 "Ungültiger Eigenschaftswert" ausgelöst.

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft wirksam zu machen.


CrossVisible-Eigenschaft

Gibt einen Wert zurück oder legt einen Wert fest, der bestimmt, ob im Kopf der Sektion ein Kreuz angezeigt wird und die Sektion somit vom Benutzer weggeklickt werden kann.

Syntax

Section.CrossVisible [= boolesch]

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Einstellungen

Die Einstellungen für boolesch sind:

Einstellung | Beschreibung
True | (Voreinstellung) Im Kopf der Sektion wird ein Kreuz angezeigt. Die Sektion kann vom Benutzer weggeklickt werden.
False | Es wird kein Kreuz angezeigt. Die Sektion kann nicht weggeklickt werden.

Anmerkungen

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft sichtbar zu machen.


HeadFont-Eigenschaft

Gibt ein Font-Objekt zurück.

Syntax

Section.HeadFont

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Verwenden Sie die HeadFont-Eigenschaft, um auf das Font-Objekt zuzugreifen, welches die Schriftattribute des Kopfes einer Sektion bestimmt. Zum Beispiel bewirkt der folgende Code, dass der Text im Kopf der ersten Sektion fett dargestellt wird:

Split.Sections(1).HeadFont.Bold = True
Split.Refresh

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dem von der HeadFont-Eigenschaft zurückgegebenen Font-Objekt sichtbar zu machen.


HeadForeColor-Eigenschaft

Gibt die Vordergrundfarbe (zum Anzeigen von Text) des Kopfes einer Sektion zurück oder legt diese fest.

Syntax

Section.HeadForeColor [= Farbe]

Die Syntax der HeadForeColor-Eigenschaft besteht aus folgenden Teilen:

Teil | Beschreibung
Section | Ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.
Farbe | Ein Wert oder eine Konstante der/die die Vordergrundfarbe der Sektion bestimmt.

Anmerkungen

Der folgende Code bewirkt, dass der Text im Kopf der ersten Sektion rot dargestellt wird:

Split.Sections(1).HeadForeColor = vbRed
Split.Refresh

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft sichtbar zu machen.


HeadHeight-Eigenschaft

Gibt die Höhe des Kopfes einer Sektion an oder legt diese fest.

Syntax

Section.HeadHeight [= Zahl]

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Die Voreinstellung ist 22 Pixel.

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft sichtbar zu machen.

Bei einem vertikal ausgerichteten Split-Steuerelement entspricht die Größe (Höhe) der Sektionen mindestens deren Kopfhöhe.


HeadMenu-Eigenschaft

Gibt das Menü zurück, das beim Anklicken des zugehörigen Bereichs im Kopf der Sektion angezeigt werden soll, oder legt dieses fest.

Syntax

Section.HeadMenu

Set Section.HeadMenu = Menü

Die Syntax der HeadMenu-Eigenschaft besteht aus folgenden Teilen:

Teil | Beschreibung
Section | Das Section-Objekt in der Sections-Auflistung eines Split-Steuerelements, für das ein Menü festgelegt werden soll.
Menü | Ein Menü, das beim Anklicken der Kopfbeschriftung der Sektion angezeigt wird.

Anmerkungen

Wenn die HeadMenu-Eigenschaft einer Sektion nicht Nothing ist, so wird ein kleines Dreieck rechts neben der Kopfbeschriftung angezeigt, um die Verfügbarkeit des Menüs zu verdeutlichen.

Klickt der Benutzer den entsprechenden Bereich im Kopf einer Sektion an, für die ein Menü festgelegt wurde, so wird das ShowHeadMenu-Ereignis ausgelöst.

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft wirksam zu machen.


HeadText-Eigenschaft

Gibt den Text zurück, der im Kopf einer Sektion angezeigt wird, oder legt diesen fest.

Syntax

Section.HeadText [= Text]

Die Syntax der HeadText-Eigenschaft besteht aus folgenden Teilen:

Teil | Beschreibung
Section | Ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.
Text | Der Text, der im Kopf der Sektion angezeigt wird.

Anmerkungen

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft sichtbar zu machen.


Key-Eigenschaft

Gibt eine Zeichenfolge zurück, die eine Sektion in der Sections-Auflistung eines Split-Steuerelements eindeutig identifiziert, oder legt eine Zeichenfolge fest.

Syntax

Section.Key [= Zeichenfolge]

Die Syntax der Key-Eigenschaft besteht aus folgenden Teilen:

Teil | Beschreibung
Section | Ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.
Zeichenfolge | Eine eindeutige Zeichenfolge, die ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements identifiziert.

Anmerkungen

Wenn Zeichenfolge nicht eindeutig ist, tritt der Laufzeitfehler 457 "Dieser Schlüssel ist bereits einem Element dieser Auflistung zugeordnet" auf.

Sie können die Key-Eigenschaft festlegen, wenn Sie die Add-Methode verwenden, um der Sections-Auflistung eine Sektion hinzuzufügen.


ScaleLeft-, ScaleTop-Eigenschaften (Section-Objekt)

Geben die horizontalen (ScaleLeft) und vertikalen (ScaleTop) Koordinaten für den linken und oberen Rand des Innenbereichs einer Sektion an.

Schreibgeschützt.

Syntax

Section.ScaleLeft

Section.ScaleTop

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Diese Eigenschaften werden immer in Twips angegeben.

Für die Nutzung des Split-Steuerelements finden diese Eigenschaften nur dann Verwendung, wenn Sie beabsichtigen die auf dem Split-Steuerelement befindlichen Steuerelemente manuell auszurichten.


ScaleHeight-, ScaleWidth-Eigenschaften (Section-Objekt)

Geben den vertikalen (ScaleHeight) und horizontalen (ScaleWidth) Innenbereich einer Sektion an, der für die Darstellung der Steuerelemente zur Verfügung steht.

Schreibgeschützt.

Syntax

Section.ScaleHeight

Section.ScaleWidth

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Diese Eigenschaften werden immer in Twips angegeben.

Für die Nutzung des Split-Steuerelements finden diese Eigenschaften nur dann Verwendung, wenn Sie beabsichtigen die auf dem Split-Steuerelement befindlichen Steuerelemente manuell auszurichten.


Size-Eigenschaft

Gibt die Größe (gleichbedeutend mit Höhe bei vertikal ausgerichtetem Split-Steuerelement bzw. Breite bei horizontaler Ausrichtung) an, die zur Darstellung des Kopfes und des zur Sektion gehörenden Steuerelementes (ContainedControl-Eigenschaft) verwendet wird, oder legt diese fest.

Syntax

Section.Size [= Zahl]

Section ist ein Section-Objekt in der Sections-Auflistung eines Split-Steuerelements.

Anmerkungen

Die Maßeinheit dieser Eigenschaft entspricht der Maßeinheit des Containers, auf dem sich das Split-Steuerelement befindet.

Sie müssen die Refresh-Methode des Split-Steuerelements aufrufen, um Änderungen an dieser Eigenschaft wirksam zu machen.

Beachten Sie, dass bei Änderung der Size-Eigenschaft einer Sektion auch die restlichen, sichtbaren Sektionen angepasst werden müssen, da die Summe der Größen aller sichtbaren Sektionen gleich der ClientSize-Eigenschaft des Split-Steuerelements sein sollte.

Bei einem vertikal ausgerichteten Split-Steuerelement entspricht die Größe der Sektionen mindestens deren Kopfhöhe (HeadHeight-Eigenschaft).


Ereignisse

Ereignisse des Split-Steuerelements

ClickAway

Invisible

ReArrange

ShowHeadMenu


Eigenschaften

Eigenschaften des Split-Steuerelements

InnerBorderSize

InnerResizeDirect

MarginOppositeResize

MarginVBottomHRight

MarginVTopHLeft

MaxSizeByUser

MinSizeByUser

OuterControl

OuterResizeDirect

ResizeBorderSize

ScaleLeft

ScaleTop

ScaleHeight

ScaleWidth

ClientSize

Sections

Resizeable

VerticalIfNoAlign