А почему все переменный типа integer, а, например, не одна переменная Array of integer, или какой-либо TIdxIcon с набором полей, сколько надо столько оттуда и вытащим переменных. Но это -- мысли вслух.
------------ Дoбавленo:
Ну Galkov, ну и задал же ты мне задачку про поддержку всех иконок. Парсер -- это самое просто, что можно было сделать. Столкнулся с глюками вообще в MSDN (мне так кажется, но может только в KOL'e). Хочу разобраться подробнее. А прикол в назначении значка оверлея.
Есть такая функция ImageList_SetOverlayImage, которая спользуется в KOL'e, для назначения значку признака надрисовки в ImageList'e
Вот ссылка на MSDN про эту функцию http://msdn2.microsoft.com/en-us/library/bb775227(VS.85).aspx
Вроде в KOL'e сделано правильно
procedure TImageList.SetOverlay(Idx: TImgLOVrlayIdx; const Value: Integer);
begin
if ImageList_SetOverlayImage( fHandle, Value, Idx shl 8 ) then
fOverlay[ Idx ] := Value;
end;
procedure TImageList.SetOverlay(Idx: TImgLOVrlayIdx; const Value: Integer);
begin
if ImageList_SetOverlayImage( fHandle, Value, Idx ) then
fOverlay[ Idx ] := Value;
end;
Второе: Со списком состояния вообще бардак, только в режиме CheckBoxes работает и переключает по кругу все иконки, которые есть, начиная с той которую укажешь в TVItemStateImg. И на кой черт он тогда такой нужен, кто такой режим вообще применяет
Я понимаю использовать дополнительный ImageList для замены системных иконок состояния, но вот присваивать начальную... я даже не знаю, надо ли
Я зарезервирую четыре индекса в парсере, но вот будут ли они все использованы -- это вопрос