Вверх ↑
Разработчик
Ответов: 26068
Рейтинг: 2121
#1: 2008-03-22 00:15:22 ЛС | профиль | цитата
Ага с иконками состояния понятно, спасибо за инфу.

А почему все переменный типа 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;
Те Idx смещается согласно описанию, но... -- нифига это не работает, функция всегда возвращает 0, те ошибку. Пока я не сделал вот так (образно говоря, в коде немного по-другому ( я не правил KOL, а запросил функцию минуя KOL), но смысл тот же), те убрал смещение.


procedure TImageList.SetOverlay(Idx: TImgLOVrlayIdx; const Value: Integer);
begin
if ImageList_SetOverlayImage( fHandle, Value, Idx ) then
fOverlay[ Idx ] := Value;
end;
Эта функция нифига не заработала. А с исправлениями работает прекрасно, и значок из списка отрисовывает как надо, вот и пойми...

Второе: Со списком состояния вообще бардак, только в режиме CheckBoxes работает и переключает по кругу все иконки, которые есть, начиная с той которую укажешь в TVItemStateImg. И на кой черт он тогда такой нужен, кто такой режим вообще применяет
Я понимаю использовать дополнительный ImageList для замены системных иконок состояния, но вот присваивать начальную... я даже не знаю, надо ли

Я зарезервирую четыре индекса в парсере, но вот будут ли они все использованы -- это вопрос


карма: 22

0