FListView

PropertyDatentyp(Read/Write)Hinweise
LeftInteger (R/W) Linke Position
TopInteger (R/W) Obere Position
WidthInteger (R/W) Weite
HeightInteger (R/W) Höhe
ClientHeightInteger (R) Höhe des Clientbereiches
ClientWidthInteger (R) Breite des Clientbereiches
VisibleInteger (R/W) TRUE = sichtbar (voreingestellt) ; FALSE = nicht sichtbar
EnabledInteger (R/W) TRUE = aktiv (voreingestellt) ; FALSE = inaktiv
ColorUInteger (R/W) Hintergrundfarbe ; voreingestellt ist hellgrau
TextColorUInteger (R/W) Textfarbe ; voreingestellt ist schwarz
HandleHWND (R) Handle des Control(nur lesen !)
BorderInteger (W) Umrandung :   0   ohne (voreingestellt); 1  sunken; 2  Border
SortTypeInteger (R/W) 0 = ohne; 1 aufteigend(def) ; 2 = absteigend
UserSortInteger (R/W) 1 = Text ; 2 = Zahle  3 = Datum
0 = onColumClick ist wirkungslos
Hinweis: UserSort bewirkt eine Sortierung der Col. auf dessen Header geklickt wird, in Richtung wie in SortType angegeben.
(Datum muss dd.mm.jjjj sein)
CheckBoxesInteger (R/W) TRUE = Item mit Checkbox ; FALSE =ohne
GridLineInteger (R/W) TRUE = mit GridLine ; FALSE = ohne
SetViewInteger (R/W) 0 = REPORT; 1 = ICON; 2 = SMALLICON; 3 = LIST
ColCountInteger (R) Anzahl der Spalten
RowCountInteger (R) Anzahl der Zeilen
ImgLargeHANDLE (W) Handle der Imagelist
ImgSmallHANDLE (W) Handle der Imagelist
SUB ArgumenteHinweis
SUB Create (ByVal hParent As HWND,
ByVal x As Integer,ByVal y As Integer,ByVal w As Integer,ByVal h As Integer )
Handle des Elternfenster
Dimensionen x,y,Weite,Höhe
SUB AddColum (sName As String,ByVal nWidth As Integer,ByVal align As Integer) Name , Weite (in Pixel) und Aligement ( 0=links,1=mitte,2=rechts) der Spalte.
Function AddItem (text As String , ByVal bildNr As Integer ) As Integer Item-Text, Bild-Nr. der Imagelist. Wenn kein Bild angezeigt werden soll, dann -1.
Zurückgegeben wird die Zeilen-Nr. Die kann bei AddSubItem genutzt werden
Sub AddSubItem (ByVal row As Integer,ByVal col As Integer,text As String) Zeilen-Nr., Spalten-Nr. ( Die Spalte 0 ist das Item- das erste SubItem hat Spalte 1), Text
Sub GetItemText (ByVal row As Integer,ByVal col As Integer,text As String) Zeilen-Nr., Spalten-Nr. ( Die Spalte 0 ist das Item- das erste SubItem hat Spalte 1),
text liefert den Inhalt als String
Function IsCheck ( ByVal nItem As Integer) As Integer nItem entspricht der Zeilen Nr.;Liefert True wenn Check sonst False
Sub SetCheck ( ByVal nItem As Integer,ByVal check As Integer) nItem entspricht der Zeilen Nr.; True = setzt Check; False = Uncheck
Sub DelItem (ByVal Row As Integer) löscht die Zeile
Sub Clear ohne löscht den gesamten Inhalt
Event SUBArgumenteHinweis
onDblClick( ByVal item As Integer,szItem As ZString) Zeilen-Nr. und Item-Text
onClick( ByVal item As Integer,szItem As ZString) Zeilen-Nr. und Item-Text
onReturn( ByVal item As Integer,szItem As ZString) Zeilen-Nr. und Item-Text
onLButtondown(ByVal nItem As Integer,ByVal nSubItem As Integer) Zeilen-Nr, Spalten-Nr.
onRButtondown(ByVal x As Short, ByVal y As Short) Wenn auf dem Control mit der rechter Mousetaste geklickt wird
x und y ist dabei die Position des Mousezeigers
onColumClick( ByVal Colum As Integer) Spalten-Nr.

 

Beispiel :
        
#Include "winFBgui.bi"

Dim Shared As FForm form1
Dim Shared As FButton Btn1
Dim Shared As FListView lisv1,listv2
Dim Shared As FImageList Ptr image1
Dim Shared As FStatusbar status1

image1 = New FImageList
'------------------------------- EventSub-------------------------
Sub btn1_Click
form1.FormClose
End Sub
'
Sub lisv1_ColumClick(ByVal col As Integer)
If col =0 Then lisv1.UserSort = 1
If col =1 Then lisv1.UserSort = 2
If col =2 Then lisv1.UserSort = 3
End Sub
'
Sub form1_Size(ByVal x As Integer,ByVal y As Integer,ByVal f As Integer)
status1.setSize(x,y)
End Sub
' ----------------------------------------------------------------

' Fenter erstellen
form1.Create("Test 1",90,90,600,420)
form1.Color = &HFFDDAA
form1.onSize = @form1_Size
' Statusbar
status1.Create(form1.Handle)
status1.AddPanels(50)
status1.AddPanels(-1)
status1.SetPanelText(0,"INS")
status1.SetPanelText(1,"Letzter Part mit Weite -1")

' Button erstellen
Btn1.Create(form1.Handle,"Exit",250,300,100,60)
Btn1.Image("166.jpg")
Btn1.onClick = @btn1_Click
Btn1.Color = &HfBeBdB

'Listview 1
lisv1.Create(form1.Handle,10,10,335,260)
lisv1.Color = &HfBeBdB
lisv1.TextColor = &HFF0000
lisv1.onColumClick = @lisv1_ColumClick
'lisv1.AutoSort = 2
lisv1.AddColum("Name",140,0)
lisv1.AddColum("Size",100,1)
lisv1.AddColum("Datum",120,1)
' Imagelist für Listview 1
image1->Create(5,16,16)
lisv1.Imgsmall = image1->Handle
lisv1.ImgLarge = image1->Handle

'Listview 2
listv2.Create(form1.Handle,370,10,175,260)
listv2.Color = &HEEEEEE
listv2.TextColor = &H800080
listv2.AutoSort = 1
listv2.AddColum("ItemName",170,0)
listv2.CheckBoxes = TRUE

listv2.AddItem("Border" , -1)
listv2.AddItem("Hint" , -1) ' Wird auf Check gesetzt
listv2.AddItem("TabOrder" , -1)
listv2.AddItem("Text" , -1)

listv2.SetCheck(1,TRUE)


' Listview akt. Dir einlesen
'---------------------------------------------------------
DIM AS String fi, dat
DIM As Integer ln,zeile , idx
Dim d AS DOUBLE
Dim szPat As ZString * MAX_PATH
Dim nIcon As Short
Dim As HICON hIcon

idx = 0
fi = DIR("*.*")
Do
nIcon = 0
szPat = fi
hIcon = ExtractAssociatedIcon(GetModuleHandle(0),@szPat, @nIcon)
If hIcon <> 0 Then
image1->AddIconHandle(hIcon)
End if
zeile =lisv1.AddItem( fi , idx)

hFil=CreateFile( @szPat,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0)
If hFil Then
ln = GetFileSize( hFil, NULL)
GetFileTime(hFil,@crT,@laT,@lwT)
FileTimeToSystemTime(@laT,@sysT)
lisv1.AddSubItem(zeile,1,Str(ln))
dat = Str(sysT.wDay)+"."+Str(sysT.wMonth)+"."+Str(sysT.wYear)
lisv1.AddSubItem(zeile,2,dat)
CloseHandle(hFil)
End If
idx = idx + 1
fi = DIR()
Loop WHILE LEN(fi)

' alles anzeigen
form1.Show
Delete image1
ExitProcess(0)
End
So sieht es aus:
Listview