|
|
|
TabOrder и Requery+Refresh
|
|||
|---|---|---|---|
|
#18+
На форме есть: 1. Grig1, построенный на основе LV1 (родительский файл) 2. Grid2, на основе LV2 (следующий по старшинству), которое питается подсуммами из LV3 (на основе самого дочернего файла БД). 3. textbox nKoefficient, от которого зависит подсумма в LV3. И, соответственно, получаемая из нее колонка в Grid2 (LV2) При запуске формы колонка посчитана правильно. Меняем nKoefficient. В Grid2 изменений нет, хотя должны быть: Код: plaintext 1. 2. Вторично меняем nKoefficient. Изменения происходят, но с учетом предыдущего значения коэффициента. Т.е. с запаздыванием на один шаг. Правильно все пересчитать можно, если дважды ввести в nKoefficitnt одно и то же значение. При определенных условиях запаздывание может быть и на 2 шага. Словно переполняется какой-то буфер и в Grid2 "выливаются" правильные значения. Причем замечу, что BROWSE LV3 и LV2 показывает, что там все рассчитано верно. Но такой ерунды не происходит, если следующим за textbox nKoefficient по TabOrder-у стоит Grid1, хотя LV1 не имеет никакого отношения к изменениям коэффициента. Вопрос: "Порядок обхода действительно имеет значение или я что-то не учитываю?" PS Удвоение Refresh и перестановки-удвоение Requery не оказывают никакого влияния на запаздывание. Имеет значение лишь порядок обхода объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 15:49 |
|
||
|
TabOrder и Requery+Refresh
|
|||
|---|---|---|---|
|
#18+
Грид рефреш ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 15:51 |
|
||
|
TabOrder и Requery+Refresh
|
|||
|---|---|---|---|
|
#18+
Это я делал. Даже оба Грида РЕФРЕШИЛ. Не помогает ни в каких комбинациях. Срабатывает только, если шагну в Grid1, а там сделаю AfterRowColChange(). Но если вставлю в VALID textbox-a: Thisform.Grid1.AfterRowColChange(), то все равно обновляться не хочет хочет. Разве, если SetFocus на Grid1 перекинуть. Именно на Grid1, а не Grid2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 19:13 |
|
||
|
TabOrder и Requery+Refresh
|
|||
|---|---|---|---|
|
#18+
Обновление "картинки" содержимого Grid происходит только после получения им фокуса. ThisForm.Grid1.SetFocus() ThisForm.Grid1.Refresh() ThisForm.Grid2.SetFocus() ThisForm.Grid2.Refresh() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 19:54 |
|
||
|
TabOrder и Requery+Refresh
|
|||
|---|---|---|---|
|
#18+
Спасибо. Не знал. Но в таком случае, почему: 1. не обновляется Grid2, если я сразу на него фокус перекидываю? Обязательно нужно заглянуть первым делом в Grid1. А в Grid2 даже без этого фокуса обновится? 2. при нелучшем TabOrder-e обновление все-таки происходит 2 темпом, хотя ни Grid1, ни Grid2 не получают фокус вообще? Или при рефреше всей формы, фокус поочередно пробегает по всем объектам, возвращаясь в исходную точку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2006, 00:10 |
|
||
|
TabOrder и Requery+Refresh
|
|||
|---|---|---|---|
|
#18+
men deaСпасибо. Не знал. Но в таком случае, почему: 1. не обновляется Grid2, если я сразу на него фокус перекидываю? Обязательно нужно заглянуть первым делом в Grid1. А в Grid2 даже без этого фокуса обновится? 2. при нелучшем TabOrder-e обновление все-таки происходит 2 темпом, хотя ни Grid1, ни Grid2 не получают фокус вообще? Или при рефреше всей формы, фокус поочередно пробегает по всем объектам, возвращаясь в исходную точку? На оба вопроса один ответ. Надо смотреть твой код. Что-то у тебя там слишком все закручено. Судя по всему, у тебя в AfterRowColChange() первого Grid происходит обновление содержимого второго Grid. О чем ты скромно умолчал. В общем, по такой информации судить трудно. Попробуй сделать тестовый пример. Даже не для того, чтобы сюда выложить, а чтобы понять, в чем именно ты ошибся. Почти наверняка, в тестовом примере у тебя все будет работать "как положено". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2006, 22:23 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33508697&tid=1592500]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 417ms |

| 0 / 0 |
