Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

TVM_GETIMAGELIST в NewTreeView (модуль KOL.PAS)   Найти похожие ветки 

 
Unknown Mystic ©   (2005-02-10 22:11) [0]

Уважаемые мастера, скажите, пожалуйста, почему при добавлении в самый конец функции NewTreeView (модуль KOL.PAS) строки
h := Result.Perform(TVM_GETIMAGELIST, TVSIL_STATE, 0);
получаю 0, тогда как строка
h := TreeView1.Perform(TVM_GETIMAGELIST, TVSIL_STATE, 0);
в модуле программы нормально возвращает хэндл?


 
Unknown Mystic ©   (2005-02-10 22:13) [1]

Заранее спасибо :)


 
SPeller ©   (2005-02-11 11:18) [2]

Потому что после вызова конструктора окно контрола ещё не создано. Проверьте свойство Handle.


 
Unknown Mystic ©   (2005-02-11 15:38) [3]

Я тоже сначала так подумал, но
Result.Handle - не ноль, хотя Result.fHandle - ноль


 
SPeller ©   (2005-02-11 16:15) [4]

Если вы смотрели .Handle из-под отладчика, то это понятно - в 1% случаев отладчик показывает правильные значения свойств объектов (object), поэтому надо смотреть именно fHandle.


 
ECM ©   (2005-02-11 16:32) [5]

Из спортивного интереса.. :)
Откуда известно, что имеено один процент?


 
Unknown Mystic ©   (2005-02-11 17:39) [6]

Мда... столько об этом говорили, а я как-то не подумал, спасибо.
А как можно изменить умолчальный список изображений состояния, создаваемый, при создании TreeView или ListView с CheckBox"ами? В своей программе - все ясно, все работает, а что делать, если TreeView подправить хочется?


 
SPeller ©   (2005-02-12 06:39) [7]

Потому что за всё время программирования на KOL я раз 10 видел чтобы показывались нормальные значения :) Статистику я, конечно, специально не считал, а так, на глазок прикинул :)


 
SPeller ©   (2005-02-12 06:40) [8]

Unknown Mystic ©   (11.02.05 17:39) [6]
А как можно изменить умолчальный список изображений состояния, создаваемый, при создании TreeView или ListView с CheckBox"ами?

По-моему, у Кладова на сайте есть пример работы с чекбоксами, и там, если мне не изменяет память, использовались свои картинки. А вообще, по-моему, можно просто назначить какой-то imagelist и всё.


 
Unknown Mystic ©   (2005-02-12 17:59) [9]

Вообще-то говоря я имел ввиду именно изменить, а не прицепить новый...

Назначить imagelist, можно конечно, но пихать всю прорисовку в kol.pas не хотелось бы, когда все, что необходимо (добавить затемненную галочку) делается гораздо проще на основе стандартного листа:
if LV.ImageListState = nil then
 begin
   h := LV.Perform(LVM_GETIMAGELIST, LVSIL_STATE, 0);
   ImageList_SetBkColor(h, CLR_NONE);
   ImageList_AddIcon(h, ImageList_GetIcon(h, 1, ILD_BLEND25));
 end;

В отдельной программе это работает, а вот как бы к TreeView и ListView прикрутить опцию, что-то вроде AllowGray, вернее как ее обрабатывать, если получить Handle листа похоже не удается?


 
SPeller ©   (2005-02-13 06:23) [10]

Так как это стандартный системный imagelist, я думаю что не надо его трогать. Нужно сделать копию его картинок в своем imagelist и уже его изменять как заблагорассудится.


 
Unknown Mystic ©   (2005-02-13 21:07) [11]

Может и не стоит, хотя если ошибок никаких возникать не будет, то почему бы и нет? Кроме того, даже если и делать копию, то все равно его Handle добыть как-то надо...


 
Unknown Mystic ©   (2005-02-18 18:20) [12]

Признаю - был не прав. :)

В MSDN"е оказывается написано:
Once you have a handle to a system image list, you can use the ImageList API to manipulate it like any other image list. ecause system image lists are created on a per-process basis, you should treat them as read-only objects. Writing to a system image list may overwrite or delete one of the system images, making it unavailable or incorrect for the remainder of the process.

А Handle, оказывается можно получить: Result.GetWindowHandle - Владимир подсказал :)

Спасибо за помощь. С уважением, Сергей.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
11-1108035269
WhiteGuy
2005-02-10 14:34
2005.10.16
Немножко в KOLLISTBOX ;)


2-1126973912
Oleg77
2005-09-17 20:18
2005.10.16
Выделение определенных дней в календаре


14-1127824913
Knight
2005-09-27 16:41
2005.10.16
Какая-то чертовщина с ноутбуком...


1-1127446670
VAMPVAMP
2005-09-23 07:37
2005.10.16
Delphi & flash


14-1127812199
pazitrton_brain
2005-09-27 13:09
2005.10.16
Зацените программу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский