Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Каскадные CheckBox в деревьях TdxTreeList и TdxDBTreeList (ExpressDeveloper)

9.1K
19 ноября 2004 года
Aksined
1 / / 19.11.2004
Требуется в DBTreeList около каждой node прорисовывать CheckBox. Необходимо реализовать каскадное чеканье: изменение свойства CheckBox каждого узла должно приводить к наследованию этого свойства потомками, а предки должны принимать три возможных значения "выбранности" (mNonSel, mHalfSel, mSel) в зависимости от братьев.
С CheckBox'ами отдельных ноде я разобрался, хуже обстоит с наследниками. Я предпологал использовать событие OnMouseDown. При простом кликаньи на элементе дерева све происходит нормально, потомки выделяются. Если в момент клика нажата <Ctrl>, то в обработчик OnMouseDown мы просто не заходим.
Кроме того, для того, чтобы пользователь работал с программой, как с обычным Win-приложением, необходимо, чтобы он не нажимал <Ctrl> при работе мышкой. Правильно ли я понимаю, что я сам должен отлавливать посылаемые моему приложения сообщения Windows и перед вызовом обработчика OnMouseDown сам добавлять нажатие <Ctrl>.
//================================================

//TdxTreeList
свойства
Images=ImageList1
aoMultiSelect=true
aoExtMultiSelect=true

enum {mNonSel, mHalfSel, mSel} gEnumSelected;
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
GenTree(DSMaster, DSSlave, TLGroups); //формируем дерево на основе БД
for(int i = 0; i < TLGroups->Count; i++){
TdxTreeListNode* node = TLGroups->Items;
for(int j = 0; j < node->Count; j++){
node->Items[j]->ImageIndex = mNonSel;
node->Items[j]->SelectedIndex = mSel;
}
node->ImageIndex = mNonSel;
node->SelectedIndex = mSel;
}
}

//TdxDBTreeList
свойства
ImageIndexFieldName=Selected
Images=ImageList1
KeyField=Id
etoMultiSelect=true
etoUseImageIndexForSelected=false
ParentField=Id_group
SelectedIndex=2
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог