Ok hat sich erledigt.
So geht's wie es soll.
Delphi-Quellcode:
type
PItemsInfo = ^TItemsInfo;
TItemsInfo = record
Item : Integer;
SubItem : Integer;
ImgIcon: HICON;
end;
Delphi-Quellcode:
var
ItemsInfo: array of TItemsInfo;
Delphi-Quellcode:
procedure TSkinListView.SetSysItemIcon(nItem, nSubItem: Integer; wsItems: WideString);
var
fi: TSHFileInfo;
begin
ZeroMemory(@fi,sizeof(TSHFileInfo));
if SHGetFileInfo(PWideChar(wsItems), 0, fi, sizeof(TSHFileInfo),
SHGFI_DISPLAYNAME Or SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_ICON) <> 0 then
begin
SetLength(ItemsInfo, nItem + 1);
ItemsInfo[nItem].Item := nItem;
ItemsInfo[nItem].SubItem := nSubItem;
ItemsInfo[nItem].ImgIcon := fi.hIcon;
end;
end;
und die Überprüfung so
Delphi-Quellcode:
if (HeaderItem = ItemsInfo[Item].SubItem) and (ItemsInfo[Item].ImgIcon <> 0) then
begin
Warum das mit dem Mehrdimensionalen Array nicht ging.. na was soll's
gruss