Hi,
Ich habe das nun mal Versucht in Delphi 7 mit XPMan Komponente und
VCL umzusetzen. Das Hervorheben von Spalten funktioniert wunderbar. Allerdings die Gruppenansicht verweigert komplett die Darstellung.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
group:TLVGroup;
lvItem: TLVItem60;
begin SetLength(dataset, 0);
for i:=0 to 99 do
begin
SetLength(dataset, length(dataset)+1);
dataset[length(dataset)-1].Name:='Wert '+inttostr(i+1);
dataset[length(dataset)-1].Value:=AValue(random(10)+10, 0);
dataset[length(dataset)-1].Mode:=random(2)+1;
end;
lv.Items.Count:=length(Dataset);
// Spalte Name Grau hinterlegen
ListView_SetSelectedColumn(lv.Handle,1);
// Gruppen "Modus 1" anlegen
group.cbSize := sizeof(TLVGroup);
group.mask := LVGF_HEADER or LVGF_GROUPID;
group.pszHeader := pwidechar(widestring('Modus 1'));
group.cchHeader := lstrlenW('Modus 1');
group.iGroupId := 1;
ListView_InsertGroup(lv.Handle,-1,group); // Gruppe speichern
// Items den Gruppen zuordnen
for i := 0 to lv.Items.Count - 1 do
begin
// Record leeren
ZeroMemory(@lvItem,sizeof(TLVItem60));
// Flag setzen, weil wir die Gruppen-ID ändern wollen
lvItem.mask := LVIF_GROUPID;
// von welchem Item?
lvItem.iItem := i;
if Dataset[i].Mode = 1 then
begin// wie lautet die ID?
lvItem.iGroupId := Dataset[i].Mode; end;
// und ab dafür
SendMessage(lv.Handle,LVM_SETITEM,0,LPARAM(@lvItem));
end;
// Gruppen aktivieren
ListView_EnableGroupView(lv.Handle, true);
lv.Repaint;
end;
Gibt es dafür einen Grund?
Vielen Dank schonmal für jede Antwort. Suche schon ewig nach dieser Darstellungsart.