Tipp 0285 Zahlen am Dezimalkomma ausrichten
Autor/Einsender:
Datum:
  Angie
09.11.2002
Entwicklungsumgebung:   VB 5
Mit der API-Funktion SendMessage kann man in einer ListBox Tabstopps setzen, sowohl um Text links- als auch rechtsbündig ausrichten zu können. Diese Eigenschaft kann man sich zunutze machen und damit auch Zahlen in einer ListBox am Dezimalkomma ausrichten. Zahlen ohne Dezimalkomma werden links vom Tabstopp (Komma) angeordnet.
 
Option Explicit

Private Declare Function SendMessage Lib "user32" Alias _
      "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
      ByVal wParam As Long, lParam As Any) As Long

Private Const LB_SETTABSTOPS = &H192

Private mavArray() As Variant

Private Sub Form_Load()
  Dim alTabs(2) As Long

  alTabs(1) = -65
  alTabs(2) = 65

  SendMessage List1.hwnd, LB_SETTABSTOPS, 0&, 0&
  SendMessage List1.hwnd, LB_SETTABSTOPS, UBound(alTabs), alTabs(1)

  AddListBoxItems
  List1.ListIndex = 0
End Sub

Private Sub AddListBoxItems()
  Dim i As Integer
  Dim strTemp As String
  Dim intPos As Integer

  ReDim mavArray(9)

  mavArray(0) = 123456789.1
  mavArray(1) = 12345678.12
  mavArray(2) = 1234567.123
  mavArray(3) = 123456.1234
  mavArray(4) = 12345.12345
  mavArray(5) = 1234.123456
  mavArray(6) = 123.1234567
  mavArray(7) = 12.12345678
  mavArray(8) = 1.123456789
  mavArray(9) = 1001

  List1.Clear

  For i = LBound(mavArray)To UBound(mavArray)
    strTemp = CStr(mavArray(i))
    intPos = InStr(1, strTemp, ",")
    If intPos > 0 Then
      strTemp = Mid$(strTemp, 1, intPos - 1) & vbTab & _
            Right$(strTemp, Len(strTemp) - intPos + 1)
    End If
    List1.AddItem vbTab & strTemp
  Next i

  List1.Refresh
End Sub
 
Weitere Links zum Thema
Spalten in einer ListBox

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3,2 kB) Downloads bisher: [ 1014 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 6. August 2011