|
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
|
|
|
|
|
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: [ 1024 ]
|
|
|