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

Вниз

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

 
Германн ©   (2006-05-10 02:03) [0]

Согласен, что мой вопрос дурацкий, но тем не менее. (я всё-таки не "дельфист", а "железячник" )
Нужен мне некий компонент, позволяющий выводить данные в табличном виде. При этом желательно иметь возможность строке иметь свою иконку, колонки в строке разрисовывать по своему.
Вроде как TListView - то, что надо. Но вот проблема - в Д4 TListView не обладает такими возможностями, имхо!
Перейти в более старшую версию Дельфи я не могу! Это мне никто не оплатит! (Работа слишком большая).

Или попытаться работать с ДЛЛ, соданной в Д6?


 
Джо ©   (2006-05-10 02:24) [1]

Насчет Д4 не знаю, у меня его нет проверить. Но, если так оно и есть, то предлагаю 2 варианта на вскидку.

1. В 6-й (или какой там?) версии сделать из TListView ActiveX-контрол. Импортировать использовать :)
2. Создавать этот элемент управления средствами Windows напрямую. Ну, и для управления использовать соответствующими методами. Посмотреть можно реализацию этой делфийской обертки в исходниках 5-й или 6-й версии.
3. А можно сразу ей и воспользоваться, переделав модуль ExtCtrls (или ComCtrls?) под 4-ку.

Сорри за сумбур, голова тяжелая.


 
Германн ©   (2006-05-10 02:40) [2]


> Джо ©   (10.05.06 02:24) [1]
>
> Насчет Д4 не знаю, у меня его нет проверить. Но, если так
> оно и есть, то предлагаю 2 варианта на вскидку.
>
> 1. В 6-й (или какой там?) версии сделать из TListView ActiveX-
> контрол. Импортировать использовать :)
Подумаю.

> 2. Создавать этот элемент управления средствами Windows
> напрямую. Ну, и для управления использовать соответствующими
> методами. Посмотреть можно реализацию этой делфийской обертки
> в исходниках 5-й или 6-й версии.
Это я смотрел. Нужно много писАть.

> 3. А можно сразу ей и воспользоваться, переделав модуль
> ExtCtrls (или ComCtrls?) под 4-ку.
Это - самый большой "геморрой"! Имхо.
>
> Сорри за сумбур, голова тяжелая.
> <Цитата>
>


 
Юрий Зотов ©   (2006-05-10 02:55) [3]

Насколько помню, TListView в D4 все это умеет. И выводить данные в табличном виде, и назначать каждой строке свою иконку, и колонки разрисовывать по своему.


 
Германн ©   (2006-05-11 02:29) [4]


> Юрий Зотов ©   (10.05.06 02:55) [3]
>
> Насколько помню, TListView в D4 все это умеет. И выводить
> данные в табличном виде, и назначать каждой строке свою
> иконку, и колонки разрисовывать по своему.

Не стал сразу отвечать. Сначала  решил свои проблемы, потом попробовал ещё раз. Ничего не получилось! В смысле OnCustomDrawSubItem!/B>
Ну не заходит туда дебаггер! Кто виноват?


 
Германн ©   (2006-05-12 01:22) [5]

Не понимаю почему вышеописанное событие не вызывается?

Может кто-нибудь поможет в осмыслении справки?
В справке от Д6 по TListView о событии OnCustomDrawSubItem первой строкой идёт: "Occurs when a subitem must be rendered in an owner-draw list view." Не могу понять смысл термина "rendered" в данном контексте.
С учётом того, что в той же справке о событии OnAdvancedCustomDrawSubItem идёт "Occurs at discrete stages during the painting of a subitem in an owner-drawn list view."
Т.е. Чем "render" отличается от "paint"?

Кстати! Спасибо Максим, что аттрибуты текста нынче можно вставлять в позицию курсора!


 
han_malign ©   (2006-05-12 09:43) [6]


> Насколько помню, TListView в D4 все это умеет.

- насколько я знаю - функциональнотсь оконного класса "SysListView32" - зависит только от версии Windows, а все, что не "обернуто" в VCL, можно "дообернуть" сообщениями LV_xxx/LVM_xxx/ListView_xxx .
Например, даже в D7 - ListView_GetSubItemRect приходиться "руками делать" - нет ни в TListView, ни в Help-е - хотя в CommCtrl.pas присутствует...


> Чем "render" отличается от "paint"?

OnCustomDrawSubItem - конкретно в момент отрисовки...
OnAdvancedCustomDrawSubItem - "at discrete stages during"
   cdPrePaint Before painting.
   cdPostPaint After painting.
   cdPreErase Before erasing.
   cdPostErase After erasing.
но лучше таки использовать - onGetSubItemImage...


 
han_malign ©   (2006-05-12 09:48) [7]


> Не понимаю почему вышеописанное событие не вызывается?

- как ни странно, но OnCustomDrawSubItem работает только если OwnerDraw = False...
Неисповедимы пути...


 
han_malign ©   (2006-05-12 09:58) [8]

ну и, на всякий случай - ViewStyle = vsReport


 
Германн ©   (2006-05-12 15:10) [9]


> - как ни странно, но OnCustomDrawSubItem работает только
> если OwnerDraw = False...
>

 У меня не работает ни при False ни при True :-(


 
@Lex ©   (2006-05-12 15:38) [10]

>У меня не работает ни при False ни при True :-(

Если память не изменяет, сработает при добавлении SubItem т.е.
ListItem.SubItems.Add(...);


 
Германн ©   (2006-05-12 16:06) [11]


> Если память не изменяет, сработает при добавлении SubItem
> т.е.
> ListItem.SubItems.Add(...);
>

В Д4 не работает никак. В Д6 всё ОК!


 
Германн ©   (2006-05-13 01:57) [12]

2 Джо ©   (10.05.06 02:24) [1]

> 2. Создавать этот элемент управления средствами Windows
> напрямую. Ну, и для управления использовать соответствующими
> методами. Посмотреть можно реализацию этой делфийской обертки
> в исходниках 5-й или 6-й версии.
> 3. А можно сразу ей и воспользоваться, переделав модуль
> ExtCtrls (или ComCtrls?) под 4-ку.


"2." не стал даже пробовать. Имхо - не потяну.
"3." Попробовал. Естественно, не пытаясь "переделать модуль ComCtrls под 4-ку". (Неочень мне хочется получить "Не Трогай Генофонд Зараза!" от некоторых мастеров :) Попытался создать новый компонент на основе исходников от Д6. Поначалу всё шло "тип-топ", но потом упёрлось в несовместимость ActnList.pas от Д4 и Д6. Тут я и обломился. :-(

Пункт 1 об ActiveX-контрол - Это сколько же я потрачу времени на обучение? Увы и Ах!

Короче принял решение О.Б. и Ш.Б., которые увидев "плакат о последнем арбатовском нововведении в область народного питания:
ПИВО ОТПУСКАЕТСЯ ТОЛЬКО ЧЛЕНАМ ПРОФСОЮЗА" решили удовлетвориться квасом, который, тем более, изготовляется "артелью частников, сочувствующих советской власти".

Пусть будет просто StringGrid или TRxCheckListBox. Что именно, выберу позже.


 
Джо ©   (2006-05-13 02:20) [13]

> Короче принял решение О.Б. и Ш.Б., которые увидев "плакат
> о последнем арбатовском нововведении в область народного
> питания:
> ПИВО ОТПУСКАЕТСЯ ТОЛЬКО ЧЛЕНАМ ПРОФСОЮЗА"

Гм... Как раз давеча перечитывал эту главу. В последнее время меня преследуют странные совпадения %-)


 
Германн ©   (2006-05-13 02:38) [14]


> Джо ©   (13.05.06 02:20) [13]
>
> > Короче принял решение О.Б. и Ш.Б., которые увидев "плакат
>
> > о последнем арбатовском нововведении в область народного
>
> > питания:
> > ПИВО ОТПУСКАЕТСЯ ТОЛЬКО ЧЛЕНАМ ПРОФСОЮЗА"
>
> Гм... Как раз давеча перечитывал эту главу. В последнее
> время меня преследуют странные совпадения %-)
>

" Не ну "телепатия" у меня с женой - это факт! Но вот телепатия "у меня с "Кем бы то  ни было ещё"?



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

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

Наверх




Память: 0.51 MB
Время: 0.039 c
1-1147243260
Шмель
2006-05-10 10:41
2006.06.18
Перегрузка операторов в Delphi


15-1148099562
antonn
2006-05-20 08:32
2006.06.18
помогите по электронике


3-1145532429
Zaq123
2006-04-20 15:27
2006.06.18
DBF таблица и кодировка DOS


3-1145891342
linx
2006-04-24 19:09
2006.06.18
Запретить чтение ячейки данных в таблице


6-1139769318
Prod
2006-02-12 21:35
2006.06.18
Открытые порты