powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в cxTreeList отмечать без подчиненных узлов?
56 сообщений из 56, показаны все 3 страниц
Как в cxTreeList отмечать без подчиненных узлов?
    #39638896
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть дерево TcxDBTreeList. Можно ли менять состояние чекбоксов так, чтобы не влиять на дочерние и на родительские узлы?
Есть такая встроенная возможность или придётся программировать?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39638903
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колонка с чекбоксом
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39638910
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле? Свою отдельную добавлять?
Тогда придётся много переделывать :(
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39638955
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11В смысле? Свою отдельную добавлять?
Тогда придётся много переделывать :(
Всё правильно. Ради извращенских решений надо страдать.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39638956
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никакого изврата не вижу в этом.
Когда-то давно покупал компоненты FibExTree, так там это было искаропки.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39638964
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Колонка с галочкой -- куда уж проще-то? Прямо из коробки, в три клика (создать колонку, выставить проперти в чекбокс, указать поле в датасете -- если нет в базе, то можно и обычное кастомное добавить). Ставится галка только на текущей записи, игнорирует дочерние/родительские.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39638970
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не проблема создать колонку. Проблема - потом переделывать обработку. Много форм, много деревьев в проекте.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39639005
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
X11Не проблема создать колонку. Проблема - потом переделывать обработку. Много форм, много деревьев в проекте.
один раз написать процедуру обработки, а потом её вызывать, когда надо, с указанием дерева.
Или сделать форму-предок, в которой это уже всё будет,
и деревянные формы наследовать уже от неё
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39639029
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorX11Не проблема создать колонку. Проблема - потом переделывать обработку. Много форм, много деревьев в проекте....
Или сделать форму-предок, в которой это уже всё будет,
и деревянные формы наследовать уже от неёТолько не форму, а фрейм.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39639035
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, пока что не хочу добавлять колонку.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39639086
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimonkadefecatorпропущено...
...
Или сделать форму-предок, в которой это уже всё будет,
и деревянные формы наследовать уже от неёТолько не форму, а фрейм.
глюкавый фрейм не нужен
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640094
Hammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,
cxTl курил?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640152
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет ещё.
Я подумал, что кто-то уже такое делал и не придётся свой лисапед изобретать.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640154
Hammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,
Лисапед отставить.
cxTl курить до просветления
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640168
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hammer,

точно, надо исходники девок поменять, т.к. в проекте лень переделывать код.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640177
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiт.к. в проекте лень переделывать код.

знать бы как :)
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640189
Hammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiточно, надо исходники девок поменять, т.к. в проекте лень переделывать код.
Стоять, бояться ...
Это где это таку бяку предлагал?

X11,
Направление вроде дал. Мне хватило 10 минут
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39640190
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Решение было еще в самом первом посте -- колонка с чекбоксом. Очень просто. Есть даже вот такое извращение с фейковой колонкой и хранением выделенных значений в стороннем месте (читай, без доп поля в датасете): 15296483
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39641211
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiРешение было еще в самом первом посте -- колонка с чекбоксом. Очень просто.

Да, это если делать с нуля, переделывать не хочется, боюсь, что-то где-то забуду доделать/переделать и через время полезут ошибки, проект старый.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39679979
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiКолонка с чекбоксом
Дерево привязано к НД.
К TcxDBTreeList добавил колонку, которая без привязки к НД. Дереву разрешил редактирование.
Но в колонке не получается включить чекбокс.
ЧЯДНТ.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39679995
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
X11JaDiКолонка с чекбоксом
Дерево привязано к НД.
К TcxDBTreeList добавил колонку, которая без привязки к НД. Дереву разрешил редактирование.
Но в колонке не получается включить чекбокс.
ЧЯДНТ.надо выставить проперти для этого поля,
там где указывается, какие значения соответствуют Checked, Unchecked

не помню, как они называются, но найти просто
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39679997
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
во, нашёл

Код: pascal
1.
2.
3.
          Properties.ValueChecked = '1'
          Properties.ValueGrayed = '-1'
          Properties.ValueUnchecked = '0'
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680009
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorнадо выставить проперти для этого поля,
там где указывается, какие значения соответствуют Checked, Unchecked

Ну само собой

...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680010
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorво, нашёл

Код: pascal
1.
2.
3.
          Properties.ValueChecked = '1'
          Properties.ValueGrayed = '-1'
          Properties.ValueUnchecked = '0'



именно текстовые значения?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680014
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помогает. Всё равно при щелчке на чекбоксы ничего не происходит.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680017
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У дерева AlwaysShowEditor и ImmediateEditor, OptionsData.Editing включены.
У фиктивной колонки без привязки Options.Editing включено.
У НД (Fib): [ukModify,ukInsert,ukDelete], запрос для Update прописан.

Само дерево полностью редактируемое. Только что проверил: поменял название узла, переоткрыл НД - значение в базе поменялось.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680044
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
X11Не помогает. Всё равно при щелчке на чекбоксы ничего не происходит.

X11defecatorнадо выставить проперти для этого поля,
там где указывается, какие значения соответствуют Checked, Unchecked

Ну само собой



ValueChecked = 1
и так далее для ValueXXX

аналогично и для
DisplayChecked = 1
и так далее для DisplayXXX
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680052
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator, DisplayChecked зачем трогать?

Всё равно не помогло

...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680060
Dmitri Krizhanovski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11... добавил колонку, которая без привязки к НД. Дереву разрешил редактирование.
Но в колонке не получается включить чекбокс.
ЧЯДНТ.
Если нет привязанного поля, то где хранишь значение добавленной колонки?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680066
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нигде. В том-то и идея. У DB-компонентов есть свой внутренний НД - Datacontroller. Ведь с cxGrid такая фишка прокатывает.
Дать пользователю выбрать только пока открыта форма.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680088
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11кто-то уже такое делал
15 лет велосипеду
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680097
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думал, будет проще, как в cxGrid
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680129
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ma1tusX11кто-то уже такое делал
15 лет велосипеду

тот код не рабочий, всё-таки 15 лет прошло



при щелчке - серая галочка, хоть 100 раз щёлкай
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680139
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

ЧЯНТД
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
  object cxDBTreeList1: TcxDBTreeList
    Left = 160
    Top = 88
    Width = 305
    Height = 150
    Bands = <
      item
      end>
    DataController.DataSource = DataSource1
    DataController.ParentField = 'RNT'
    DataController.KeyField = 'ID'
    Navigator.Buttons.CustomButtons = <>
    OptionsBehavior.ExpandOnDblClick = False
    RootValue = -1
    TabOrder = 0
    OnCustomDrawDataCell = cxDBTreeList1CustomDrawDataCell
    OnMouseDown = cxDBTreeList1MouseDown
    object cxDBTreeList1CHK1: TcxDBTreeListColumn
      PropertiesClassName = 'TcxCheckBoxProperties'
      Properties.ImmediatePost = True
      Properties.NullStyle = nssUnchecked
      Properties.ValueChecked = 1
      Properties.ValueUnchecked = 0
      Options.Editing = False
      Width = 62
      Position.ColIndex = 1
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
    object cxDBTreeList1VAL1: TcxDBTreeListColumn
      DataBinding.FieldName = 'VAL'
      Width = 100
      Position.ColIndex = 0
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
    object cxDBTreeList1ID: TcxDBTreeListColumn
      DataBinding.FieldName = 'ID'
      Width = 100
      Position.ColIndex = 2
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
    object cxDBTreeList1RNT: TcxDBTreeListColumn
      DataBinding.FieldName = 'RNT'
      Width = 100
      Position.ColIndex = 3
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
  end

...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680159
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ma1tus, это с кодом по той ссылке или без?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680170
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11, с кодом, - не на отмашку же... галка появляется - уже прогресс, по сравнению с
X11Не помогает. Всё равно при щелчке на чекбоксы ничего не происходит.Серость галки - что-то другое
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680172
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но на сайте Dev код с ошибкой, там непонятен тип переменной P
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680186
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,unit System; D10.2
Код: pascal
1.
PBoolean      = ^Boolean;

dx 17.2.7, win7sp1, aero
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680211
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да, я так и объявил:
Код: pascal
1.
 P: PBoolean;
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680214
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил ещё одну колонку и вот какой странный эффект: щёлкаю в левой колонке, галочка рисуется в правой и наоброт


а там, где щёлкаю, рисуется серая
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680215
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680216
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае, этот код всё равно не рабочий получается в связке с непривязанным к НД полем.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
procedure TfmSelRegionsList.btnOkClick(Sender: TObject);
var
  ANode: TcxTreeListNode;
begin
  fRegionsList := '';

  dbTreeRegion.BeginUpdate;
  try
    ANode := dbTreeRegion.Root.getFirstChild;
    while ANode <> nil do
    begin
        if ANode.Values[dbTreeRegionCheck.ItemIndex] then
        if fRegionsList.IsEmpty then
          fRegionsList := ANode.Values[dbTreeRegionColName.ItemIndex]
        else
          fRegionsList := fRegionsList + ',' + ANode.Values[dbTreeRegionColName.ItemIndex];

      ANode := ANode.GetNext;
    end;

  finally
    dbTreeRegion.EndUpdate;
  end;
end;



строка "ANode.Values[dbTreeRegionColName.ItemIndex]" всегда возвращает NULL
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680218
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, придётся делать какую-то "виртуальную колонку" в самом НД (FibDataSet)
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680237
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танцы с бубном продолжаются.
Дерево показывает, что оно в режиме редактирования



а код
Код: pascal
1.
  if dbTreeRegion.DataController.IsEditing 


возвращает False.

Код: pascal
1.
2.
3.
4.
5.
6.
procedure Tfm1.dbTreeRegionEditValueChanged(
  Sender: TcxCustomTreeList; AColumn: TcxTreeListColumn);
begin
  if dbTreeRegion.DataController.IsEditing then
    dbTreeRegion.DataController.post(True);
end;



или так

Код: pascal
1.
2.
3.
4.
5.
6.
procedure Tfm1.dbTreeRegionVIRTUALCHECKPropertiesEditValueChanged(
  Sender: TObject);
begin
  if dbTreeRegion.DataController.IsEditing then
    dbTreeRegion.DataController.post(True);
end;



Идея в данном случае в том, чтобы одним щелчком мышки включать/отключать чекбокс и чтобы сразу после этого выполнялся Post, т.е. завершение редактирования, чтобы после щелчка дерево не было в режиме редактирования.

cxGrid в таком случае работает корректно, кстати.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680332
AX-Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Зачем нужны эти танцы с ивентами?
Когда понадобилось такое, я просто скопировал функционал unbound column из cxGrid. Да, наследовать пришлось 5-6 классов, зато и фильтры прикрутил сразу.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680364
AX-Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AX-Class,

Вспомнил, почему DX сами не ввели. Некоторые фичи (например, перетягивание мышкой узлов по парентам) перестают адекватно работать. Но они или не нужны, или их можно победить.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680509
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AX-ClassЗачем нужны эти танцы с ивентами?

Для удобства. Чтобы редактирование было в один щелчок.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39680554
AX-Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Я говорю о наследнике cxTreeList, с добавленным функционалом.
Представим, если вы юзаете ивенты и в проекте cxTreeList-ов >=2. Вам придется писать контроллер, который будет цепляться через ивенты к разным cxTreeList-ам. Потом выяснится, что ивенты нужны еще для чего-то. И контроллер должен будет еще конкатенцией ивентов рулить. Вообщем, на голом месте усложняем себе код и жизнь.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39704907
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ma1tusX11кто-то уже такое делал
15 лет велосипеду

В общем, я сделал с помощью доп. memDataSet дополнительную колонку.
Но это неудобно, т.к. теряется половина встроенного в дерево функционала и его приходится реализовывать самому.

Надеюсь, в будущих версиях, разработчики додумаются добавить функционал (свойство), благодаря которым можно будет отмечать ветки, чтобы при этом не затрагивать дочерние.
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39704979
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
type
TMycxTreeListController = class(TcxTreeListController)
  function DoNodeMouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean;override;
end;

TMycxTreeListNode = class(TcxUnboundTreeListNode)
  procedure SetCheckState(AValue: TcxCheckBoxState);
  procedure CheckClick;
end;

TcxTreeList = class(cxTL.TcxTreeList)
  function GetControllerClass: TcxCustomControlControllerClass;override;
  function CreateNode: TcxTreeListNode; override;
end;

  TForm1 = class(TForm)
    cxTreeList1: TcxTreeList;
    cxTreeList1Column1: TcxTreeListColumn;
    cxTreeList1Column2: TcxTreeListColumn;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// скопировано с cxTL
procedure TMycxTreeListNode.SetCheckState(AValue: TcxCheckBoxState);
var
  ACheckedCount: Integer;
  APrevCheckState: TcxCheckBoxState;
const
  AState: array[TcxCheckBoxState] of TcxTreeListNodeCheckInfos =
    ([], [nciChecked], [nciGrayed]);
  AParentCheckState: array[Boolean] of TcxCheckBoxState = (cbsGrayed, cbsChecked);
begin
  APrevCheckState := CheckState;
  CheckInfo := CheckInfo - [nciChecked, nciGrayed] + AState[AValue] + [nciChangeCheck];
  try
(*  код который проставляет галки вверх и вниз по узлам
   if (CheckState in [cbsChecked, cbsUnchecked]) and HasChildren then
    begin
      LoadChildren;
      if not IsRadioGroup or (CheckState = cbsUnchecked) or (CheckedCount = 0) then
        SetChildrenCheckState(CheckState, nil);
    end;
    if (Parent <> nil){ and (Parent.CheckGroupType <> ncgNone)} then
    begin
      if Parent.IsRadioGroup and Checked then
        Parent.SetChildrenCheckState(cbsUnchecked, Self);
      if not (nciChangeCheck in Parent.CheckInfo) then
      begin
        ACheckedCount := Parent.CheckedCount;
        if (ACheckedCount = 0) and (Parent.GrayedCount = 0) then
          Parent.CheckState := cbsUnchecked
        else
          Parent.CheckState := AParentCheckState[(ACheckedCount = Parent.Count) or
            ((ACheckedCount > 0) and Parent.IsRadioGroup)];
      end;
    end;  *)
  finally
    CheckInfo := CheckInfo - [nciChangeCheck];
    if (Parent <> nil) and (Parent.CheckGroupType <> ncgNone) then
      Repaint(True);
    if APrevCheckState <> CheckState then
//      TreeList.DoNodeCheckChanged(Self, CheckState);
// дописано
      TcxTreeList(TreeList).DoNodeCheckChanged(Self, CheckState);
  end;
end;

// скопировано с cxTL
procedure TMycxTreeListNode.CheckClick;
const
  ANewState: array[Boolean, TcxCheckBoxState] of TcxCheckBoxState =
  ((cbsChecked, cbsUnchecked, cbsChecked), (cbsChecked, cbsGrayed, cbsUnchecked));
begin
  if not Enabled or not HasCheckbox or
    ((Parent.CheckGroupType = ncgRadioGroup) and Checked) then Exit;
//  CheckState := ANewState[AllowGrayed, CheckState];
// дописано
  SetCheckState(ANewState[AllowGrayed, CheckState]);
end;


{ TcxTreeList }

function TcxTreeList.CreateNode: TcxTreeListNode;
begin
  Result := TMycxTreeListNode.Create(Self);
end;

function TcxTreeList.GetControllerClass: TcxCustomControlControllerClass;
begin
  Result := TMycxTreeListController;
end;


{ TMycxTreeListController }

// скопировано с cxTL
function TMycxTreeListController.DoNodeMouseDown(
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer): Boolean;
begin
  Result := False;
  if CanDrag(X, Y) and HitTest.HitAtNode and IsEditing then
    TreeList.DragAndDropState := ddsNone;
  if not (ssDouble in Shift) and (Button <> mbMiddle) and HitTest.HitAtNode then
    CheckNodeContentClick(Shift);
  if HitTest.HitAtCheckButton and (Button = mbLeft) then
    TMycxTreeListNode(HitTest.HitNode).CheckClick
  else
    if HitTest.HitAtButton and (Button = mbLeft) then
    begin
      HitTest.HitNode.Expanded := not HitTest.HitNode.Expanded;
      Result := True;
    end;
  HitTest.ReCalculate;
end;



...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39704987
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

А как ты делаешь такие GIF ?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39704993
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B, наверное что-то вроде Camtasia?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39704995
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr, т.е. разработчика всего-то пару строк кода исправить можно было бы?
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39705001
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11DimaBr, т.е. разработчика всего-то пару строк кода исправить можно было бы?
Заремить движение галки вверх и вниз
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39705002
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BDimaBr, А как ты делаешь такие GIF ?
LICEcap
...
Рейтинг: 0 / 0
Как в cxTreeList отмечать без подчиненных узлов?
    #39705527
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
Код: pascal
1.
2.
// скопировано с cxTL
procedure TMycxTreeListNode.SetCheckState(AValue: TcxCheckBoxState);



всё скопировал, ошибок нет, но и проблема не ушла

поставил точки останова - не попадает на них
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в cxTreeList отмечать без подчиненных узлов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]