Dobrej pokec   Lišanská šlapka   MSDN   VB na Microsoft.cz   NCHAT Nový design
   Portál  O firmě  Profil  Reference  Produkty  Odkazy  Diskuse  Tisková verze 



  Novinky e-mailem
Pokud chcete být informováni o změnách ,přihlašte se k odběru novinek!
  
  
  Nejčtenější články
 Seznam všech českých hubů abecedně. (32160)
 Seznam hubů nad 100 uživatelů (20875)
 Konfigurovatelné rozbalovací menu (17499)
 Jak na makra (14371)
 Rozbalovací menu v JavaScriptu (2.) (12702)
  Nejstahovanější soubory
 Action Meter (1846)
 Slovní Fotbal (777)
 IE Boss Guard (484)
 zdroják slovní fotbal (383)
 Folder Watcher (370)
  Anketa

  Nabídka portálu

 Adobe Premiere
    Jak se dá udělat
 Alternativní prohlížeče
    FireFox
 ASP
    Tipy a triky
 Direct Connect
    Huby
    Scripty pro HUB
    Tipy a triky CZDC++
 Game Maker
    Tipy a triky
 Hry
    Akční
    Logické
 HTML
    Scripting (VBS,JS)
    Tipy a triky
 Internet
    Užitečné triky
 Microsoft Office
    Tipy, triky, návody
    Užitečná makra
    VBA Tipy a triky
 MS SQL Server
    Nastavení
    Seriály
    Tipy a triky
 Multimedia
    Návody
 Oracle
    PL/SQL
 PHP
    Jak na to
    Tipy a triky
 Užitečné odkazy
    Grafické programy
    Programátorské
 Visual Basic
    DirectX
    Formuláře
    Jak se dá udělat ...
    Užitečné funkce
    Win32Api
    Zdroje
 Visual Basic .NET
    Užitečné funkce
 Vtípky
    Vtipy a anekdnoty
 Vypalování
    DVD Shrink
    Tipy a triky
 Windows
    Jak se dá ...
    Tipy a triky pro XP
    Triky pro IE


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ářů: 4699
Unikátních: 4405


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



Příspěvky ke článku:



© Swit.cz, Marek Kočí 2003