Treeview und mehrere Imagelists

29/01/2008 - 16:09 von Axel Seutemann | Report spam
Leider kann man bei einem Treeview nur jeweils eine Bildgröße verwenden, die
man vorher definiert.
Meine Idee ist eine 2. Imagelist zu verwenden. Für die 1. Ebene (Große
Bilder aus IL1 und für die Childs-Knoten kleine Bilder aus IL2)
Vor der Zuweisung der Childs-Knoten wechsle ich per VBA die Image-List.
danach sind aber die großen Bilder der Eltern-Knoten weg.

Gibt es eine Möglichkeit die Größe der Bilder innerhalb einer IL anzugeben
oder wo ist mein Denkfehler?

Gruß
Axel Seutemann


Dim ctlStatus As Control
Dim rst As ADODB.Recordset

Dim Pers, Besuch, Detail, Therapie As ADODB.Recordset
Dim nodx As Variant

Dim strPersSel As String
Dim strBesSel As String
Dim strDetSel As String
Dim NodBesuch As Variant
Dim rstPers, rstRechStatus, rstBesuch, rstDetail As ADODB.Recordset
Dim intCnt As Integer
Dim lngRechNr As Long
Dim intRechSt As Integer
Dim intImage As Integer
Dim txtRechBez As String

'Referenz auf Imageview
Dim objImageList As MSComctlLib.ImageList

Set objImageList = Me.ImageList7.Object
Set objTVPers = Me.tvPatWahl1.Object
objTVPers.ImageList = objImageList


'listviews loeschen!
ClearListView

'Alle Knoten löschen
tvPatWahl1.Nodes.Clear
tvPatWahl1.LineStyle = tvwRootLines 'Linestyle



Set rstPers = New ADODB.Recordset

Me!txtidPers = Me.OpenArgs

rstPers.Open "SELECT idPers, idGeschlecht, Nachname" & _
"&', '& Vornamen AS Bez FROM tblPerson WHERE idPers = " & Me!idPers, _
CurrentProject.Connection


Set Pers = rstPers
Set nodx = objTVPers.Nodes.Add(, , "p" & (Pers!idPers), Pers!Bez,
IIf(Pers!idGeschlecht = 2, 1, 2))


'Variable enthàlt selektierte Person für den nàchsten Knubbel
strPersSel = Pers!idPers

'Abfrage für den Besuch, enthaelt strPersSel 1. Kind



Set rstBesuch = New ADODB.Recordset

rstBesuch.Open "Select idPers, RechNr, idBesuch," & _
"BesuchDatum AS BDat FROM tblBesuch WHERE idPers =" & strPersSel,
CurrentProject.Connection

Set Besuch = rstBesuch
If Besuch.EOF Then Exit Sub
Do While Not Besuch.EOF

########## Hier habe ich den WECHSEL !!!
Set objImageList = Me.ImageList4.Object
Set objTVPers = Me.tvPatWahl1.Object
objTVPers.ImageList = objImageList




'############## Variablen für Images am Baum definieren durch
Statusabfrage in tblRechnung
If Not Besuch!RechNr = 0 Then
'Status in tblRechnung abfragen
lngRechNr = [rstBesuch]!RechNr
Set rstRechStatus = New ADODB.Recordset
rstRechStatus.Open "Select idRechnung, idRechStatus FROM
tblRechnung WHERE idRechnung=" & lngRechNr, CurrentProject.Connection
intRechSt = [rstRechStatus]!idRechStatus
lngRechNr = [rstRechStatus]!idRechnung
txtRechBez = "R-Nr.:" & lngRechNr
rstRechStatus.Close



Else
intImage = 7
txtRechBez = ""
End If

'############ Select case für die Bildchen

Select Case intRechSt
Case 0
intImage = 4
Case 1
intImage = 3
Case 2
intImage = 5
Case 3, 4, 5
intImage = 6
Case Else
intImage = 2
End Select


Set nodx = tvPatWahl1.Nodes.Add(Relative:="p" & CStr(Pers!idPers), _
Relationship:=tvwChild, _
Key:="c" & CStr(Besuch!idBesuch), _
Text:=Format(Besuch!BDat, "dd/mm/yy ") & txtRechBez, _
Image:=intImage)

'aus dem Key von nodx wird das erste Zeichen abgeschnitten und and die
Childs
'übergeben


NodBesuch = Mid(nodx.Key, 2)
'Debug.Print NodBesuch
'Abfrage für Details definieren 2. Kind
Set rstDetail = New ADODB.Recordset

rstDetail.Open "Select idBesuch, idDetail, idBesuchsDetail
FROM tblBesDetail WHERE idBesuch = " & NodBesuch, CurrentProject.Connection

Set Detail = rstDetail
intCnt = 1
Do While Not rstDetail.EOF
Set nodx = tvPatWahl1.Nodes.Add(Relative:="c" &
CStr(Nz(NodBesuch, 0)), _
Relationship:=tvwChild, _
Key:="D" & CStr(Detail!idBesuchsDetail), _
Text:=Detail!idDetail, _
Image:=4)

'Debug.Print nodx.Key, nodx.Text, intCnt

Detail.MoveNext
intCnt = intCnt + 1
Loop

Besuch.MoveNext

Loop
rstDetail.Close

rstBesuch.Close

rstPers.Close

'End If
End Sub
 

Lesen sie die antworten

#1 Stefan Hoffmann
29/01/2008 - 16:33 | Warnen spam
Axel Seutemann schrieb:
Leider kann man bei einem Treeview nur jeweils eine Bildgröße verwenden, die
man vorher definiert.


Mit dem Standardtreeview kannst du definitv nur eine Größe verwenden. Da
davon ja auch die "Zeilen-"Höhe abhàngt.


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen