Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Добрый день! D5sp1+ado patch TDataChangeEvent = procedure(Sender: TObject; Field: TField) в хелпе написано: Data-aware controls notify a data source of a data change because of: Scrolling to a new record. Modifications to a field’s data. но ещё он происходит, когда меняется TDataSet.Fields[].Visible причём можно было бы ожидать, что Field: TField должно быть в этом случае не nil, всё-таки одно поле меняем. Нет, там nil :-(. Смотрел исходники, но ничего, что могло бы указывать на обход этого не заметил Что делать? кроме: 1 сохранять/обнулять/восстанавливать OnDataChange в обработчике 2 TDataSet.OnScroll/TDBGrid.OnCellClick/TDBGrid.OnKeyUp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:35 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
А в чем проблема то, чего нужно чтобы было и что делается вообще? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:42 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
есть грид и TEdit по первому нужно ходить, а во втором отображать текущую запись TDBEdit не предлагать:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:46 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Чтобы отображать, и TDBText хватило бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:49 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
А почему не предлагать? DataSet.OnScroll -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:55 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
//есть грид и TEdit //по первому нужно ходить, а во втором отображать текущую запись это упрощённо, просто не используется грид для редактирования, оно всё вынесено на отдельную панель поэтому нужна возможность ходить по гриду, а показывать в панели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 15:58 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Что-то мне это опять напоминает бодягу про DBAware vs NonDBAware controls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:02 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
несколько ошибся-TDataSet.AfterScroll его не предлагать потому, что это евент датасета по определённым причинам(слишком много объяснять) датасеты трогаться не должны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:03 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
2 pkarklin вопрос конкретный, а "бодяга" призвана убедить в том, что можно сделать совсем по другому надо заставить заработать это, а не переделывать всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:04 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Интересно, датасеты трогаться не должны, а навигация по связанным контролам выполняться будет? Так не бывает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:05 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Иногда лучше переделать все - читай сделать правильно - чем заставить это (ни это конкретно) работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:08 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
2 Малиновский Владимир TDataSource.OnDataChange подходит В ДАННОМ СЛУЧАЕ лучше, чем TDataSet.AfterScroll, потому, что есть TDataSet.DisableControls 2 pkarklin согласен, что иногда лучше переделать всё правильно, хотя это общие слова а как правильно В ДАННОМ СЛУЧАЕ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:49 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Что-то ты замутил. Датасет имеет задизабленные контролс, а ты по связанному с ним гриду ректирование выполняешь? Хоть бы описал задачу поподробнее, вдаваясь, так сказать, в интимные подробности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:53 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
А как тут обойти, что генериться компонентами дельфи. Задачу бы по-подробней описал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 16:55 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
задача обычная(для меня) упрощённо: 1 на форме лежит грид и панель с не дб визуализаторами 2 ходим по гриду, данные из него надо отображать в этой панели 3 редактирования в гриде нет ибо его квери ридонли 4 нажимаем на кнопку добавить/изменить 5 редактируем едиты 6 кнопка ОК записывает всё в базу через хранимку раньше всё работало на TDBGrid.OnCellClick+OnKeyUp, но это не позволяло ловить передвижение полосой прокрутки, вот я решил переделать AfterScroll не работает ещё и при .Open квери, только при реальном скролле остался только OnDataChange, но с ним возникли проблемы из-за возможно глюка/фичи VCL, которая этот евент выдаёт не только на скролл и изменение данных, как в хелпе, но ещё и на изменение поля из FieldList. При смене Query.Fields[].Visibile тоже евентится, при чём ...Field : TField) в евенте=nil, хотя логичнее равенство изменяемому полю. Спасибо всем, уже решилось за счёт проверки FieldList.Updated, т.е пришлось написать так with DBG.DataSource.DataSet do begin if ( State <> dsBrowse ) or assigned ( Field ) or TFieldList2 ( FieldList ).Updated then exit ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 17:09 |
|
||
|
TDataSource.OnDataChange
|
|||
|---|---|---|---|
|
#18+
Сделай квери не readonly и придет счастте -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 17:45 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32324745&tid=2115911]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 384ms |

| 0 / 0 |
