|
|
|
Странности с TDBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Есть TDBLookupComboBox с установленными ListSource, ListField. Делаю так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. после этого работа комбобокса - это черный ящик. Что происходит: внутри комбобокса (а вернее его родителя TDBLookupControl) есть поле Код: pascal 1. оно заполняется в методе TDBLookupControl.UpdateListFields на основании поля Код: pascal 1. Этот метод вызывается из TDataLink на событие датасета Код: pascal 1. А теперь проблема - при закрытии датасета для всех полей вызывается Код: pascal 1. а при открытии поля создаются заново. При этом, т.к. был вызван DisableControls то комбобокс не получает никаких уведомлений и его FListField указывает куда повезет. Если новые поля были созданы по старым адресам - то все будет работать. Если нет - то нет. Собственно вопрос - как бы минимальными телодвижениями заставить комбобокс переинициализировать свой FListField? Обнаружено на XE3 С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 20:22:51 |
|
||
|
Странности с TDBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Валится вот с таким кодом Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 17:06:45 |
|
||
|
Странности с TDBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
В общем вскрытие показало: D2007 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Delphi XE3 Код: 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. Delphi XE7 Код: 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. Т.е. при вызове EnabledControls во всех версиях проходит событие deLayoutChange, которое DataLink правильно обрабатывает Код: pascal 1. 2. 3. 4. А в ХЕ3 оно затирается событием deDataSetChange, которое обрабатывается так Код: pascal 1. 2. 3. 4. Решение-костыль Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 18:09:27 |
|
||
|
Странности с TDBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Решение-костыльНедопроверил. Такой костыль вызывает Stack Overflow. Не хочется переопределять TDataSet.DataEvent. Используется куча разных датасетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 18:24:19 |
|
||
|
Странности с TDBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
Здесь RSP-19036 люди жалуются на Берлин. А ноги растут оттуда же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 18:49:43 |
|
||
|
Странности с TDBLookupComboBox
|
|||
|---|---|---|---|
|
#18+
В итоге скопировал модуль Data.DB в отдельную папку, поменял строчку Код: pascal 1. на Код: pascal 1. и добавил эту папку в Library Path ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 19:14:27 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39528536&tid=2041775]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
294ms |
get topic data: |
13ms |
get forum data: |
5ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 634ms |

| 0 / 0 |
