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 |