procedure ParseIconsIdx(var s:string; IconsIdx:TIconsIdx; init:boolean=false);
const _dlm = ',';
var sint, parse:string;
i:integer;
begin
if init then for i:=0 to high(IconsIdx) do IconsIdx[i] := I_SKIP;
if (s = '') or (s[1] <> '<') or (Pos('>',s)=0) then exit;
Delete(s,1,1);
parse := GetTok(s,'>') + _dlm;
Replace(parse, ' ' ,'');
i:=0; repeat
sint := gettok(parse, _dlm);
if sint <> '' then IconsIdx[i] := str2int(sint);
inc(i);
until (parse = '') or (i > high(IconsIdx));
end;
------------ Дoбавленo:
Galkov писал(а):
Нет блин, надо еще и морочиться - а какой тут у нас shift------------ Дoбавленo:
Galkov, вот скажи, а нельзя ли MakeArrayIcon сделать общим и поместить в Share
------------ Дoбавленo:
Из-за того, что все пришлось привести к одному типу -- integer, то теперь приходится лепить вот такую муть
ind_0 := Control.TVItemImage[prn];
if (Hiword(ind_0 shl 1) > 0) then ind_0:= ind_0 or $FFFF0000;
if ind_0 < 0 then sind_0 := '' else sind_0 := int2str(ind_0);
А иначе, выдает 65534 вместо -2