Hi,
so wird's geladen:
Delphi-Quellcode:
var
hdr: HWND;
hdritem: THDItem;
begin
hdr := Listview_GetHeader(
handle);
FillChar(hdritem, sizeof(hdritem), 0);
hdritem.Mask := HDI_FORMAT;
Header_GetItem(hdr, column.
index, hdritem);
hdritem.Mask := HDI_FORMAT
or HDI_BITMAP;
if FSortDirection=sdAscending
then
hdritem.hbm := FDownArrow.Handle
else
hdritem.hbm := FUpArrow.Handle;
if fsortarrowwhere=saLeft
then
hdritem.fmt := hdritem.fmt
or HDF_BITMAP
//$400 or $200
else
hdritem.fmt := hdritem.fmt
or HDF_BITMAP_ON_RIGHT
or HDF_BITMAP;
Header_SetItem(hdr, column.
index, hdritem);
end;
end;
Und das funktioniert auch gut.
Inzwischen bin ich einen Schritt weiter und weiß nicht weiter...
Bei der Benutzung einer Listview.smallimagelist
ist mir folgendes aufgefallen:
1. Lade ich mein Bild mit dem Editor der Imagelist, wird es danach transparent im Header dargestellt.
2. Lade ich es mit Imagelist.addbitmap(Bild,nil);, weil ich ja keine Maske habe, wird es danach im Header nicht mehr transparent dargestellt.
Es scheint also an der "automatisch generierten" Maske zu liegen, wenn man das Bild per Editor lädt.
Und nun weiß ich nicht, wie ich die kriege (Imagelist.getMaskbitmap kriege ich nicht hin) und wie ich das direkt maskiert in den Header machen kann.
Wisst Ihr weiter?
Gruß
Mattze