|
|
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Хочу, чтобы по нажатию на Enter заканчивалось редактирование дерева и данные сохранялись в базу. Код на событии OnKeyDown Код: pascal 1. 2. Но IsEditing почему-то False, хотя дерево явно в режиме редактирования. Это видно также и по курсору в индикаторе Левая рука не ведает, что делает правая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 19:31 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Хочу добавить, то DataSet.State возвращает dsEdit, т.е. ещё одно подтверждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 19:34 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11Хочу, чтобы по нажатию на Enter заканчивалось редактирование дерева и данные сохранялись в базу... Код: pascal 1. ... Просто для соответсвующих колонок твоего TcxDBTreeList установи флажок Properties.ImmediatePost, и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 20:12 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Универсальное лечение девок для любителей извратиться -- PostMessage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 20:14 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
JaDi, ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 20:20 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, Когда нужно сделать какие-то вещи в реалтайме, то надо дождаться пока компоненты девок закончат все обработки внутри. Т.е. мы ловим событие OnKeyDown и делаем свои вещи, например, пост в контроле/дереве -- после чего отслыаем сообщение на форму через PostMessage (гугл ит), ловим его на форме и уже смотрим результат. Это гарантирует нам, что девки закончили свои данные сохранять и сделали всё, что положено. В противном случае могут быть вот такие вещи типа устаревших данных в EditValue или еще что. Конечно, этим надо пользоваться в крайнем случае, когда не хватает стандартной функциональности вроде ImmidiatePost, как написали выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 21:01 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Фэйтл Эра, у TextEdit нет свойства ImmediatePost, даже если и было бы, а что ImmediatePost - это реакция на Enter? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 21:07 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Переделал так Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 21:13 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, при нажатии на энтер он должен закончить редактирование в ячейки, после чего в ней сработает событие EditValueChanged. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 21:14 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
JaDi, кто "он" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 21:18 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, контрол/редактор/трилист... в данном случае это текстовое поле, которое по энтеру делает Post (это про контрол, не датасет) нового значения и сохраняет его в дереве в конкретной ячейке (в датаконтроллере). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 21:54 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11Фэйтл Эра, у TextEdit нет свойства ImmediatePost... Может быть, оно не опубликовано, но оно как минимум паблик. То есть, доступно из кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 22:27 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11... а что ImmediatePost - это реакция на Enter?Это реакция на завершение редактирования отдельного поля. Для текстовых полей это обычно Enter, для чекбоксов - просто клик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 22:29 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
JaDiв данном случае это текстовое поле, которое по энтеру делает Post В том-то и дело, что не делает. Ничего не происходит вообще. Я же не ради забавы допиливаю сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 23:33 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Фэйтл Эра, нет такой реакции, т.е. завершение редактирования не происходит автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 23:34 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, в датасет и не будет завершения -- надо на oneditvaluechanged вызвать (или еще как), например, focusednode.endedit -- тогда все данные попадут в датаконтроллер-датасет (произойдет то самое окончание рдактирования текущей записи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 23:40 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Я не про датасет. Вы же пишите про дерево, как я понял. Что дерево по Интеру должно само завершать редактирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2018, 23:47 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, надо понимать структуру в момент редактирования: - девовский контрол, где работает пользователь (создается каждый раз заново при начале редактирования прямо, прямо поверх грида/трилиста); - трилист, который просто отображает данные и ничего не хранит; - датаконтроллер, который хранит и синхронизирует данные (это как хранилище временных данных, так и просто посредник между датасетом и редактором/деревом); - датасет, к которому подключен датаконтроллер. Так вот, в процессе редактирования все изменения происходят в виртуальном контроле. И данные из него попадут дальше по цепочке только после того, как пользователь в нем завершит редактирование (для текстового поля это тот же enter, смена фокуса, для комбобокса с ImmidiatePost это выбор из выпадающего списка, вызовет EndEdit/PostEdit/Аналог и т.д.). Как только контрол закончил редактирование его данные передаются дальше по цепочке в датаконтроллер, который и решает, что с ними делать. Во-первых, эти данные он сохраняет к себе (НЕ в датасет). На временное хранение. И только если мы поменяем строку на новую, вызовем у нода EndEdit или еще как -- они эти данные перешлет в датасет. Может кто поправит, если где неточности есть. Т.е. последовательность, чтобы данные реально попали в датасет: - сделать принудительное сохранение у текущего редактора (какой-нибудь control.PostEditingValue); - сделать принудительное окончания редактирования у датаконтроллера (текущего нода -- EndEdit). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 00:20 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
JaDi(для текстового поля это тот же enter, Я нажимаю Enter и ничего не происходит. Редактирование не завершается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 00:27 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
JaDi, я уже запутался. Сначала ты пишешь, что по Enter`у данные должны сохраниться, потом это отрицаешь. Или по Enter`у данные сохраняются не где-то внутри виртуального хранилища? И программист должен добавить свой код, чтобы из виртуального хранилища сохранение пошло дальше в базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 00:30 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Ещё по поводу ImmidiatePost и чекбокса в cxGrid`е: тоже самое я утверждаю, что мышкой чекбокс меняет свое значение. Но всё равно нужно дописывать код, чтобы редактирование завершилось и данные попали в базу. Но в cxGrid DataController.IsEditing возвращает TRUE, в оличие от cxDBTreeList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 00:33 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, Сейчас проверил грид и трилист с настройками по умолчанию -- постинг измененных значений и синхронизация с датасетом идет сразу, даже по enter, ничего настраивать не надо. Т.е. начинаем редактировать текст, жмем ентер -- всё, редактирование прекратилось и текст сохранился. Пример (трилист, дбгрид и cxгрид): http://i67.tinypic.com/28vwphy.gif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 01:12 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 01:12 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
это привязано к базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 08:14 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, да, обычные db-трилист и дб-вьюха для грида. Без доп настроек, просто кинутые на форму и подключенные к общему датасету (dxmemdata). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 09:41 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Вижу по анимашке, что сохранение происходит только после перехода на др. запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 09:44 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, сохранение в базу (dataset.Post) -- да, после перехода на новую строчку (можно наблюдать по дб-навигатору или значку редактирования строки в дб-грида)... Сохранение в датасет же -- после перехода на соседнюю ячейку или нажатие энтер (там есть и то, и то на анимации -- проверяется по изменению этого же значения в других контролах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 09:52 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Так я о чем и пишу. Что нужно самому дописывать код отправки данных. При этом, во время редактирования IdEditing в дереве возвращает False, а в сетке - True. Как-то нелогично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 10:08 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
X11, в этом тестовом приложении нет ни одной строчки кода, только dfm. pas Код: 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. dfm Код: 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. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 10:36 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
Если надо, чтобы в базу передавались значения после изменения в каждой ячейки, то можно на событии дерева OnEdited вызывать tree.Post: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 10:52 |
|
||
|
TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования
|
|||
|---|---|---|---|
|
#18+
JaDi, я это и доказываю с самого начала, что нужно самому заботиться, а TcxDBTreeList(sender).DataController.IsEditing возвращает false. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 12:06 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040052]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 488ms |

| 0 / 0 |
