Mein Array.
Delphi-Quellcode:
var
ImgIcon: array of array of Cardinal;
Delphi-Quellcode:
procedure TSkinListView.SetItemIcon(nItem, nSubItem: Integer; wsItems: WideString);
var
fi: TSHFileInfo;
Item, SubItem: Integer;
begin
ZeroMemory(@fi,sizeof(TSHFileInfo));
if SHGetFileInfo(PWideChar(wsItems), 0, fi, sizeof(TSHFileInfo),
SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_TYPENAME) <> 0 then
begin
SetLength(ImgIcon, nItem + 1, nSubItem + 1);
ImgIcon[nItem, nSubItem] := fi.hIcon;
end;
end;
Ein Eintrag sieht dann so aus.
1 Eintrag (0, 0, 12345).
2 Eintrag (0, 0, 54321).
Das Problem wenn ich nun gegenprüfe.
Delphi-Quellcode:
if ImgIcon[(Item + 1), HeaderItem] <> 0 then
begin
Dann ist auch bei HeaderItem = 3 die Bedingung true obwohl ich als Subitem immer 2 addiert habe.
Wie kann es also sein das die Bedingung dann trotzdem erfüllt wird.
Warum wird hier nicht das Item und SubItem addiert?
also
1 Eintrag (1, 2, 12345).
2 Eintrag (2, 2, 54321).
gruss