|
|
|
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 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39741572&tid=2040052]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 430ms |

| 0 / 0 |
