Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

ListView и WinXP   Найти похожие ветки 

 
Yuri Btr ©   (2002-07-01 12:27) [0]

Ув. мастера, моя программа использует VisualStylesAPI для WinXP и также мне очень нужно в программе использовать обычный ListView. Но только я включаю поддержку VSAPI в программе (ресурс "24" или program.exe.manifest) как программа вызывает ошибку в kernel32
Есть ли способы побороть данную несовместимость? Я просмотрел статью "Поддержка Windows Visual Styles (Themes) API в Ваших органах управления" и пришел к выводу, что коряво написан исходник ListView. Так ли это?


 
Yuri Btr ©   (2002-07-01 13:43) [1]

Пожалуйста, ответьте кто нибудь, кто знает ответ.
Мне нужно определиться, или делать интерфейс без ListView - что будет довольно долго, или не использовать VisualStyles - что не очень красиво (я делаю коммерческую программу), или использовать сторонние компоненты (не родные Borlandовские)


 
Игорь Шевченко ©   (2002-07-01 13:47) [2]

Если коммерческая - лучше делать так, чтобы гарантировано работало. В данном случае или без Visual Styles или без ListView.


 
Yuri Btr ©   (2002-07-01 17:09) [3]

Спасибо всем ответившим :-)
Проблема заключалась в том, что если в TListView свойство ViewStyle стоит в vsReport и не определены ImageIndex для Column Titles, то при использовании VisualStyles - возникает
ошибка.
Вывод - при использовании vsReport+VSAPI нужно обязательно ассоциировать ListView с ImageList и для каждой колонки выставить соответствующую иконку.


 
Макс Черных ©   (2002-07-01 19:13) [4]

Я наверно уже 10 раз отвечаю на этот вопрос.
Может модераторам это в FAQ занести.

Column Titles здесь не совсем виноваты, причина в неточности
в модуле ComCtrls.pas.

Решение:
1. Поставить D6 Update Pack 2
2. Если с п1. не выходит, или D5, то
в ComCtrls.pas найти процедуру TCustomListView.UpdateColumn
Исправить оригинальный код:
if FImageIndex <> -1 then
fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES;

на нижеследующий:
if FImageIndex <> -1
then fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES
else mask := mask and not (LVCF_IMAGE);



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

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-47450
kalliopiy
2002-07-03 13:46
2002.07.15
Есть ли


14-47763
RIV
2002-06-12 14:37
2002.07.15
Кто лучший гитарист в мире?


3-47091
Юрий Сидоров
2002-06-21 05:29
2002.07.15
ADO в XML


8-47620
OlegGo
2002-01-30 18:06
2002.07.15
Как узнать цвет пиксела в определенной точке TImage?


14-47788
VID
2002-06-14 00:21
2002.07.15
Использование нелицензионного софта