|
|
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
На две кнопки повесил два события: - на первую "..." - выбор из диалогового окна, на вторую "x" - очистка контрола. Первая работает хорошо - выбираешь значение из диалога, и оно подставляется в контрол (здесь: Взвешивание). Но вторая очищает внутренние переменные, как и требуется, но сам контрол не очищает. Многочисленными экспериментами было установлено, что если событие очищения вешаешь на кнопку ВНЕ контрола (на рисунке правая синяя стрелка), то контрол очищается нормально. Т.е. если событие инициировано изнутри контрола, он находится в фокусе, то он не очищается. Вышел из положение следующим образом: при нажатии этого крестика сначала принудительно смещаю фокус на соседний контрол, потом вызываю очищение - так работает. Но это "костыль". Можно ли как-то добиться правильной работы самого элемента tcxBarEditItem без таких танцев с бубном? Код: 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. Первая кнопка "..." работает нормально только потому, что при ее нажатии вызывается диалоговое окно, и фокус, соответственно с контрола убирается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 02:34 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
svnvlad, https://www.devexpress.com/Support/Center/Question/Details/Q255800/setting-and-clearing-the-tcxbaredititem-content Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 05:31 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
ma1tus, ну там же написано // Only when the focus goes to another component the control's text is appears empty TcxCustomEdit(Sender).EditValue := Null; Я Null тоже прописывал, поведение не изменялось. Работало только тогда, когда фокус был вне компонента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:01 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
Причем в этом примере написано, что компонент корректно отобразит изменения только, если он потеряет фокус. В примере все работает, но фокус ведь продолжает оставаться (курсор мигает внутри). Как это так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:14 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
Попробуйте так: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:41 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
svnvladв этом примере написано, что компонент корректно отобразит изменения только, если он потеряет фокусТС-ом на том форуме svnvladно фокус ведь продолжает оставаться (курсор мигает внутри). Как это так?и оставлено без изменений автором ответа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2018, 13:45 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
ma1tus, Вызывает ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 05:11 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
svnvlad, Не очевидно, как у вас вызывается actClearReportCodeExecute. На всякий: Using the Sender Parameter Этот код для обработчика кнопки у самого компонента: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Для "доступа снаружи"... что-нибудь вроде (ExpressBars 17.2.7): Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 06:40 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
ma1tusДля "доступа снаружи"К TcxCustomEdit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 07:03 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
ma1tus, клево! Вот так работает: Код: pascal 1. 2. 3. 4. даже без этого: Код: pascal 1. Видимо фокус уже находится на нем, раз нажали его кнопку. А зачем фокус, он разве без фокуса не способен присваивать значение? И что такое Links[0].Control? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 13:59 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 14:02 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
svnvladраз нажали его кнопку.В той версии, где проверял, "Inner"Edit'у присваивается nil после ухода фокуса, и на кнопки ButtonEdit'a не предусмотрено назначение экшенов... хотя, если, зачем-либо, вызывать ActionExecute из ButtonClick... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 15:17 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
Проверить настройку AlwaysSaveText, по которой можно отключить/включить очистку текстового поля в баре при потере фокуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 15:27 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
ma1tussvnvladраз нажали его кнопку.В той версии, где проверял, "Inner"Edit'у присваивается nil после ухода фокуса, и на кнопки ButtonEdit'a не предусмотрено назначение экшенов... хотя, если, зачем-либо, вызывать ActionExecute из ButtonClick... ) Дык, контрол с редактором создается динамически поверх бара только в момент фокусировки, до этого его просто не существует (InnerEdit = nil). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 15:29 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
JaDiДык, ...Вроде того, потом подставляется из созданныхJaDiAlwaysSaveTextУ ТС'а до смены значения не доходитsvnvladLinks[0].ControlВ хелпе же) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 16:01 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
Установите у соответсвующего tdxBarManager значение AlwaysSaveText в true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2018, 16:41 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
shaposhУстановите у соответсвующего tdxBarManager значение AlwaysSaveText в true Установлено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 05:24 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
JaDiДык, контрол с редактором создается динамически поверх бара только в момент фокусировки, до этого его просто не существует (InnerEdit = nil). Визуально существует, а на самом деле не существует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 05:26 |
|
||
|
DevExpress - tcxBarEditItem не очищает значение, если он в фокусе
|
|||
|---|---|---|---|
|
#18+
На самом деле еще проверку на Nil надо делать, иначе, если это диалоговое окно и фильтр назначается извне, то происходит Access violation. Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 05:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39663349&tid=2040721]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
83ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 425ms |

| 0 / 0 |
