Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.
Jak vložit pole textů do listboxu nebo comboboxu ve VB. |
Autor: SwitCZ
| Zdroj: http://www.vb2themax.com/
| Vytvořeno: 22.10.2003
| Publikováno: 22.10.2003
| Čtenářů: 4754
| Unikátních: 4460
|
Procedura s konfortním ovládáním, která to udělá za Vás :o))
Parametry procedury:
ctrl jmeno comboboxu nebo listboxu
arr pole textů pro vložení do ctrl
clearIt smazat ctrl pred vlozenim (true,false)
First pozice v poli odkud plnit
Last pozice kam až plnit
Příklad volání níže uvedené procedury:
Dim arrText As Variant
arrText = Array("Prvni", _
"Druhy", _
"Treti", _
"4", "55")
ArrayToListBox Combo1, arrText, _
True, 1, 3
Tento příklad vložil do comboboxu položky: Druhy,Treti a 4. Zbývá jen zveřejnit zdrojový kód procedury a ta je zde:
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 Declare Function LockWindowUpdate _
Lib "user32" Alias "LockWindowUpdate" _
(ByVal hwndLock As Long) As Long
Private Const LB_ADDSTRING = &H180
Private Const LB_RESETCONTENT = &H184
Private Const CB_ADDSTRING = &H143
Private Const CB_RESETCONTENT = &H14B
Sub ArrayToListBox(ctrl As Object, _
arr As Variant, _
Optional clearIt As Boolean, _
Optional ByVal First As Variant, _
Optional ByVal Last As Variant)
Dim msgReset As Long
Dim msgAdd As Long
Dim hWnd As Long
Dim index As Long
If TypeOf ctrl Is ListBox Then
msgReset = LB_RESETCONTENT
msgAdd = LB_ADDSTRING
ElseIf TypeOf ctrl Is ComboBox Then
msgReset = CB_RESETCONTENT
msgAdd = CB_ADDSTRING
Else
'ctrl neni cbo nebo listbox, konec
Exit Sub
End If
'Nasteveni odkud kam se ma pole vlozit
If IsMissing(First) Then First = LBound(arr)
If IsMissing(Last) Then Last = UBound(arr)
'vypnout prekresleni prvku
hWnd = ctrl.hWnd
LockWindowUpdate hWnd
'vymazat prvek je li vyzadovano
If clearIt Then
SendMessage hWnd, msgReset, 0, 0
End If
'zpracovat pole
For index = First To Last
SendMessage hWnd, msgAdd, 0, _
ByVal CStr(arr(index))
Next
'zapnout prekreslovani prvku
LockWindowUpdate 0
End Sub
|