Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизAfterScroll Найти похожие ветки
← →
LazorenkoX (2003-01-30 14:10) [0]Я использую ADO (TADOQuery) и mdb (Access 2000). Почему когда я вызываю методы - Last, First, Refresh, то событие AfterScroll вызывается несколько раз?
← →
sniknik (2003-01-30 14:27) [1]Occurs after an application scrolls from one record to another.
property AfterScroll: TDataSetNotifyEvent;
Description
Write an AfterScroll event handler to take specific action immediately after an application scrolls to another record as a result of a call to the First, Last, MoveBy, Next, Prior, FindKey, FindFirst, FindNext, FindLast, FindPrior, and Locate methods. AfterScroll is called after all other events triggered by these methods and any other methods that switch from record to record in the dataset.
возможно поэтому.
← →
LazorenkoX (2003-01-30 14:32) [2]А какое событие посоветуете? Мне надо только один раз обработать при переходе на окончательную позицию.
← →
Соловьев (2003-01-30 14:37) [3]Что предполагает этот скролинг? Подробнее опиши задачу.
← →
LazorenkoX (2003-01-30 14:42) [4]Меняеться запись, после чего должно произойти событие, например MessageBox. Я использую AfterScroll, но если вызвать метод Last, First или Refresh, то AfterScroll вызывается раз 6 и я получаю кучу MessageBox-ов. Что делать? Может есть другое событие?
← →
sniknik (2003-01-30 14:44) [5]Не знаю, у меня срабатывает один раз, как надо.
Че хотел сказать, у тебя возможно одно событие вызывает другое, или делаешь не только его, если так проследи логику. Начни с простейшего варианта 1 форма 1 квери 1 событие 1 кнопка с ласт/ферст.
← →
Соловьев (2003-01-30 14:46) [6]>>событие, например MessageBox
Прикольно :)))))
Ну а если серьезно, то как ты вызываешь методы Last, First, Refresh?
Если DBNavigator, то по нажатии этих кнопок вызывай свое событие.
← →
sniknik (2003-01-30 14:53) [7]вряд ли DBNavigator виноват, поставил его себе результат анологичен след.зап. 1 вызов события, последняя еще один вызов. (методы навигатора не менял, стандартные)
← →
LazorenkoX (2003-01-30 14:55) [8]>>событие, например MessageBox
Прикольно :)))))
Там большой алгоритм, а не MessageBox, но это не важно. Методы я вызываю много откуда, куча разных форм и не только из кнопок, а общее только TADOQuery. Просто прога тормозит на этом моменте, а меня это уже запарило!!!
← →
Соловьев (2003-01-30 14:57) [9]Я тоже проверил AfteScroll - срабатывает один раз. Чего-то LazorenkoX © не договаривает...
← →
Соловьев (2003-01-30 14:59) [10]большой алгоритм ... прога тормозит на этом моменте
Так пересмотри свой алгоритм...
Что делает твой алгоритм?
← →
Max Zyuzin (2003-01-30 15:04) [11]>LazorenkoX © (30.01.03 14:55)
Скорее всего у тебя в результате работы твоего алгоритма методы эти вызываются по нескольку раз...
Посмотри их внимательно исчо раз...
← →
LazorenkoX (2003-01-30 17:34) [12]Я так и думал, спасибо, буду искать...
← →
LazorenkoX (2003-01-30 18:21) [13]Нашёл грабли - DevExpress TdxDBGrid!!! Это с её помощью при вызове Last, First и Refresh событие AfterScroll вызывается несколько раз (4-10 раз). Может смогу от этого избавиться. Кто-нибудь сталкивался с этим?
← →
sniknik (2003-01-30 18:50) [14]> Может смогу от этого избавиться.
конечно! избавься от DevExpress TdxDBGrid и пользуйся стандартным DBGrid. (если сразу не решишся подумай что он еще втихаря от тебя задваивает и удесятеряет? и не от этого ли тормоза)
> Кто-нибудь сталкивался с этим?
ну ктото наверняка, я нет, стараюсь не использовать нестандартных компонент.
← →
LazorenkoX (2003-01-30 19:26) [15]Нашёл решение проблемы - dxDBGrid.OptionsDB.PartialLoad установить в false!!!
>> избавься от DevExpress TdxDBGrid и пользуйся стандартным DBGrid
Я бы с удовольствием, но слабоватый будет DBGrid в плане возможностей.
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.008 c