Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Treeview mit Images aber nicht in Child-Knoten

  Alt 18. Okt 2004, 12:22
Ich fülle einen Treeview und weise den Knoten der obersten und darauffolgenden Ebene Images zu. Die letzte Ebene soll keine Images haben:
Delphi-Quellcode:
procedure FillTreeView(hTV: THandle; Computer: String; Users: TUsers);
var
  Groups: TStringArray;
  i, j: Integer;
  tvi: TTVInsertStruct;
  hr: HTREEITEM;
  hParent: HTREEITEM;
begin
  Groups := EnumGroups(Computer);
  ZeroMemory(@tvi, sizeof(tvi));
  tvi.hParent := nil;
  tvi.hInsertAfter := TVI_ROOT;
  tvi.item.mask := TVIF_TEXT or TVIF_IMAGE or TVIF_SELECTEDIMAGE;
  tvi.item.iImage := 5;
  tvi.item.iSelectedImage := 5;
  tvi.item.pszText := PChar(Computer);
  hr := TreeView_InsertItem(hTV, tvi);
  for i := 0 to length(Users) - 1 do
  begin
    tvi.hParent := hr;
    tvi.hInsertAfter := TVI_SORT;
    tvi.item.mask := TVIF_TEXT or TVIF_IMAGE or TVIF_SELECTEDIMAGE;
    tvi.item.iImage := 2;
    tvi.item.iSelectedImage := 2;
    tvi.item.pszText := PChar(String(Users[i].Name));
    hParent := TreeView_InsertItem(hTV, tvi);
    for j := 0 to length(Users[i].UserGroups) - 1 do
    begin
      tvi.hParent := hParent;
      tvi.item.mask := TVIF_TEXT; // <-- Nur die Text-Member ist gültig
      tvi.item.pszText := PChar(Users[i].UserGroups[j]);
      TreeView_InsertItem(hTV, tvi);
    end;
    TreeView_Expand(hTV, hParent, TVE_EXPAND);
  end;
  TreeView_Expand(hTV, hr, TVE_EXPAND);
end;
In der komentierten Zeile mache ich die iImage und iSelectedImage Member ungültig. mask hat dann auch wieder den Wert 1. Aber trotzdem zeichnet er mir das Image mit dem Index 0 aus der ImageListe vor die Knoten. Aber da will ich keine Images haben. Wie bekomme ich die da weg?

Eilt nicht mehr, habe doch noch ein schönes Image gefunden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat