VB-Homepage Tipp 167

verschiebare Trennlinie, zur Größenänderung zwischen Listboxen

Sie kennen sicher die Funktion im Dateimanager; Explorer oder NC, mit der es möglich ist, die Spaltenbreite für bestimmte Informationen zu verkleinern oder zu vergrößern.

Ein recht nützliche Funktionalität, weiß man dort nicht in jedem Fall, wie lang bestimmte Ausgabewerte werden und so gibt man dem User die Möglichkeit, sich die Einstellungen anzupassen.

Genau dieser Thematik soll sich dieser Tipp widmen.

Dazu hat das Beispielprojekt zwei ListBoxen, die nur durch einen flexiblem Trennbalken, so scheint es zumindestens, von einander getrennt sind.
Sie können nun den Balken frei bewegen und so die Größe der Listboxen verändern.

teillist.vbp
Form=Teillist.Frm
ProjWinSize=110,460,209,316
ProjWinShow=2
IconForm="Form1"
Title="Trennbalken"
ExeName32="teillist.Exe"
Name="Project1"
HelpContextID="0"
StartMode=0
VersionCompatible32="0"
MajorVer=1
MinorVer=0
RevisionVer=4
AutoIncrementVer=0
ServerSupportFiles=0

teillist.frm
VERSION 4.00
Begin VB.Form Form1
Caption = "VB-Homepage Tipp"
ClientHeight = 1485
ClientLeft = 1965
ClientTop = 2415
ClientWidth = 6090
Height = 1890
Left = 1905
LinkTopic = "Form1"
ScaleHeight = 99
ScaleMode = 3 'Pixel
ScaleWidth = 406
Top = 2070
Width = 6210
Begin VB.PictureBox Splitter
Appearance = 0 'Flat
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 855
Left = 2640
MousePointer = 99 'Custom
ScaleHeight = 57
ScaleMode = 3 'Pixel
ScaleWidth = 9
TabIndex = 2
TabStop = 0 'False
Top = 120
Width = 135
End
Begin VB.ListBox lstTel
Height = 1230
IntegralHeight = 0 'False
Left = 2880
TabIndex = 1
Top = 120
Width = 3015
End
Begin VB.ListBox lstpers
Height = 1215
IntegralHeight = 0 'False
Left = 60
TabIndex = 0
Top = 120
Width = 2595
End
End
Attribute VB_Name = "form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
Private Const P_ECART = 3
Private y1 As Integer
Private y2 As Integer
Private x1 As Integer
Private x2 As Integer
Private width1 As Integer
Private width2 As Integer
Private height1 As Integer
Private height2 As Integer
Private glbfrmInSizeX As Long
Private Sub Form_Load()
LstPers.AddItem "Montag"
LstPers.AddItem "Dienstag"
LstPers.AddItem "Mittwoch"
LstPers.AddItem "Donnerstag Abend"
LstPers.AddItem "Freitag"
LstPers.AddItem ""
LstPers.AddItem " Trennbalken verschieben -->"
lstTel.AddItem "Dresden"
lstTel.AddItem "Leipzig"
lstTel.AddItem "Chemnitz"
lstTel.AddItem "Bautzen"
lstTel.AddItem "Zittau"
lstTel.AddItem "Meissen"
lstTel.AddItem ""
lstTel.AddItem "Tipp von : Benjamin Bourderon Benjab@msn.com"
glbfrmInSizeX = &H7FFFFFFF
Form_Resize
End Sub
Private Sub splitter_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If glbfrmInSizeX <> &H7FFFFFFF Then
If CLng(x) <> glbfrmInSizeX Then
Splitter.Move Splitter.Left + x, y1, P_ECART, ScaleHeight - 2
glbfrmInSizeX = CLng(x)
End If
End If
End Sub
Private Sub splitter_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If glbfrmInSizeX <> &H7FFFFFFF Then
If CLng(x) <> glbfrmInSizeX Then
Splitter.Move Splitter.Left + x, y1, P_ECART, ScaleHeight - 2
End If
glbfrmInSizeX = &H7FFFFFFF
Splitter.BackColor = &H8000000F
If Splitter.Left > 60 And Splitter.Left < (ScaleWidth - 60) Then
LstPers.Width = Splitter.Left - LstPers.Left
ElseIf Splitter.Left < 60 Then
LstPers.Width = 60
Else
LstPers.Width = ScaleWidth - 60
End If
Form_Resize
End If
End Sub
Private Sub splitter_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
Splitter.BackColor = &H808080
glbfrmInSizeX = CLng(x)
Else
If glbfrmInSizeX <> &H7FFFFFFF Then
splitter_MouseUp Button, Shift, x, y
End If
glbfrmInSizeX = &H7FFFFFFF
End If
End Sub
Private Sub Form_Resize()
Const B_ECART = 1
On Error Resume Next
y1 = B_ECART
height1 = ScaleHeight - B_ECART * 2
x1 = B_ECART
width1 = LstPers.Width
x2 = x1 + LstPers.Width + P_ECART - 1
width2 = ScaleWidth - x2 - B_ECART
LstPers.Move x1 - 1, y1, width1, height1
lstTel.Move x2, y1, width2 + 1, height1
Splitter.Move x1 + LstPers.Width - 1, y1, P_ECART, height1
End Sub

Um den Code nutzen zu können, erstellen Sie sich mit einem Editor Dateien, die Sie wie angegeben benennen. Starten Sie anschließend die *.vbp Datei oder öffnen Sie das Projekt aus VB heraus.

Tipp-Download

Quelle : Benjamin Bourderon / Benjab@msn.com

Zurück zur Übersichtsseite