Как сделать выделение по большой площади ячеек в virtualtreeview?

Я использую TVirtualTreeView как отличную альтернативу старому TStringgrid.

Одна функция, которую мне не хватает, — это возможность выбирать любую область ячеек (кроме одного столбца, строки или всей области).

Я не могу найти никакого решения для этого, у кого-нибудь есть предложение?


person Tool    schedule 07.12.2011    source источник
comment
Вы можете установить свойство selected[] для каждого узла (строки). В заголовке вы можете указать, какие столбцы будут выбраны. Установите для параметра Multiselect значение true в параметрах.   -  person Ritsaert Hornstra    schedule 07.12.2011
comment
Я пробовал, но не могу выбрать несколько столбцов. В TVirtualTreeColumn.Option или в TVirtualTreeColumns нет опций.   -  person Tool    schedule 07.12.2011
comment
В ВТ такой функции нет. Но вы можете справиться с этим самостоятельно в своей структуре данных (например, в виде битовой маски, где каждый бит будет представлять один столбец и указать, выбран он или нет). И эту маску вы можете изменить в событии щелчка определенного столбца и нарисовать ее в событии рисования какой-либо ячейки.   -  person TLama    schedule 07.12.2011
comment
Спасибо! Я тоже думал о том же решении, но сейчас у меня нет времени на мой текущий проект. Было бы интересно, если бы кто-нибудь уже сделал реализацию в своем компоненте. Что меня заинтересовало, так это возможность пометить область при нажатой мыши - над ячейками будет синий (прозрачный) прямоугольник, но по какой причине? Если я потрачу время на реализацию дерева выбора, я выложу код для проверки.   -  person Tool    schedule 07.12.2011
comment
Как насчет stackoverflow.com/questions/491198/?   -  person Galdur    schedule 28.02.2012


Ответы (1)


Вы можете использовать Canvas Draw для отображения собственной области выбора ячейки.

person mehdi lotfi    schedule 28.05.2012