Newsgroup: it.comp.appl.access
Titolo: Listbox e Lebans

Salve a tutti.
Sto tentando di studiare la soluzione di Lebans per modificare gli
attributi di una listbox.
Con questo codice il testo diventa in grassetto in base alla richiesta:
If Left(rs("UTENTE"), 1) <> "A" Then
objFlistWnd.ItemAttributes(rs.AbsolutePosition) = 0
Else
objFlistWnd.ItemAttributes(rs.AbsolutePosition) = 1
End If
Ma se volessi assegnare un colore di sfondo alla riga, che comado
doveri usare?
Grazie per l'attenzione

Roberto ha scritto:

Aiutaci a capire di quale Demo di Lebans stai parlando...!
A spanne la collection ItemAttributes(Index) potrebbe, e dico potrebbe,
esporre
anche l'attributo che chiedi puntando all'indice dell'attributo, ma
sinceramente non vedendo il codice non posso aiutarti di più....!
@Alex

La demo è quella per la formattazione delle listbox
Questa è una piccola parte del codice; ho omesso il resto ma se serve
..
Private Declare Function apiSendMessage Lib "user32" Alias
"SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function FindWindowEx Lib "user32" Alias
"FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1
As String, ByVal lpsz2 As String) As Long
Private Sub LoadListBox()
Dim intCount As Integer
' Set picture prop. Contains Bitmap of
' a blank Box and a Box containing a CheckMark
objFList.Picture = ListPic
objFList.PictureCols = 2
objFList.PictureRows = 1
'Add a field list window control
'Me.oleFList.AddFieldList
objFList.AddFieldList "Drag & Drop ListBox", 0, 0, 180, 180, _
     m_MultiSelect, 0, m_ShowCheckBoxes
' Release previous reference if we are recreating Listbox
Set objFlistWnd = Nothing
' Set Reference to our Listbox
Set objFlistWnd = objFList.FieldLists(0)
' The sorted prop seems broken
'objFlistWnd.Sorted = True
' Allow a couple of pixels margin on Left side
objFlistWnd.ListBoxInset = 1
' No mutli column support in this sample
'objFlistWnd.Columns = 0
' No MultiSelect support in this sample
'objFlistWnd.MultiSelect = 3
' Set Text Style
objFlistWnd.ListBoxTextStyle = m_ListBoxTextStyle
' Set the Caption - not used in this release
objFlistWnd.ShowCaption = True
' Border = Flat
objFlistWnd.BorderStyle = 0
' Remove sizeable border
objFlistWnd.AllowMoveSize = 1
' Grab some Data, in this case the Recordset
' behind this Form.
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
objFlistWnd.BackColor = RGB(255, 255, 0)
rs.MoveFirst
Do While Not rs.EOF
    objFlistWnd.AddItem rs.Fields("user")
    ' Bold every other line
    If Left(rs("USER"), 1) = "A" Then
        objFlistWnd.ItemAttributes(rs.AbsolutePosition) = 1
    Else
        objFlistWnd.ItemAttributes(rs.AbsolutePosition) = 0
    End If
    rs.MoveNext
Loop
m_ListBoxhWnd = FindWindowEx(objFlistWnd.hwnd, 0&, "ListBox",
vbNullString)
End Sub

 Questa è una piccola parte del codice; ho omesso il resto ma se serve
[CUT]
Ascolta.... ultimo tentativo....
Nel sito di Lebans ci sono almeno 10 Demo che formattano le ListBox(con
il Cerca ne ho trovati 24).
Ti riferisci a questo:
http://www.lebans.com/vb_listbox.htm
Ora se non ti è troppo difficile postare il Link per evitarmi di
guardare tutti i demo, cosa che
peraltro non farei mai, posso provare a vedere quello che dici,
altrimenti io passo.
Il codice che posti è inutile perchè i demo di Lebans che gestiscono
queste formattazioni grafiche sono sempre molto complessi e risponderti
sarebbe molto presuntuoso senza
aver approfondito, almeno per me e per le mie capacità, magari
postando sul NG americano ti risponde Lebans direttamente e non gli
serve nemmeno il codice.
@Alex

 
http://www.lebans.com/vb_listbox.htm
si, scusa, non avevo capito la domanda ...

 si, scusa, non avevo capito la domanda ...
Non si può fare quello che chiedi in quel modo.
Se hai notato non esiste nessuna ListBox nella/e Form/s, ma sfrutta un
Oggetto Ole
che associa Runtime, e se non ho caito male usa la ListBox di VB
all'interno di Access...!
In ogni caso all'inizio del codice espone "' ** Field list control
constants **" e non esiste nulla inerente al BackColor.
In ogni caso on sono esposti attributi per lo sfondo dell'Item, per
quello saresti costretto
a SubClassare l'Handle del controllo "m_ListBoxhWnd", ma a quel punto
dovresti avere una
pictureBox per semplicità (cosa non presente in VBA) oppure devi
prenderti l'altro Demo di Lebans che realizza la Formattazione
Condizionale via SubClassing su una Form in visualizzazione Continua ed
adattarla alla List in questione......!
Se avessi visto qualche Demo in VB6 fatto con le ListView ti saresti
reso conto prima che le 2 cose sono concettualmente diverse.
Anche la ListView di MsCommonControl non consentirebbe di modificare lo
sfondo delle singole Row, in realtà si fà tranquillamente(è
un'eufemismo) con la Tecnica che ti ho detto prima.
A mio avviso hai fatto un passo troppo lungo......
@Alex

 @Alex
hai ragione, ma se non si prova mai ...

 > adattarla alla List in questione......!
a quale ti riferisci?

Roberto ha scritto:

Per creare i rettangoli colorati senza PictureBox a questo:
http://www.lebans.com/alternatecolordetailsection.htm
@Alex