Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Горю
|
|||
|---|---|---|---|
|
#18+
procedure TDataModule1.Query1AfterScroll(DataSet: TDataSet); var a:tboonmark; begin a= Query1.getbookmark; Query1.first; while not Query1.eof do begin ..... Query1.next; end; Query1.gotobookmark(a); Query1.freebookmark(a); end; Как вы думаете, Все работает правилно да? А вот и нифига. Процедуре есть 2 загводки. firs & next те после выполнения команды first опят вызывается этот же процедура и тд пока не будет переполнения стека. Вопрос как делать чтобы first не вызвал этуже процедуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 16:01 |
|
||
|
Горю
|
|||
|---|---|---|---|
|
#18+
Никак. Процедура вызывается всегда, когда происходит перемещение курсора DataSet. Если хочешь чтобы работало именно в этом виде, то заведи глобальный флаг, который будет при первом вызове устанавливаться, а во всех остальных случаях делай его проверку и просто пропускай само тело процедуры. Что-то типа: Код: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 16:16 |
|
||
|
Горю
|
|||
|---|---|---|---|
|
#18+
А вот вопрос есть: какой смысл этого кода??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 16:19 |
|
||
|
Горю
|
|||
|---|---|---|---|
|
#18+
Н-да... Похоже, что логика работы этого приложения продиктована привычкой работать через BDE с Paradox овскими базами. Но сейчас, всё-таки лучше использовать SQL , или, по крайней мере, Calculated Fields . Sorry, если не так понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 16:28 |
|
||
|
Горю
|
|||
|---|---|---|---|
|
#18+
Согласен с Дмитрием Мыльниковым, хочу только добавить, что явно данные из Query1 показываются в каком-то гриде или еще как-то видны пользователю, поэтому в ходе выполнения этой процедуры он будет видеть движение курсора по гриду. Поэтому перед первым вызовом следует вызвать DisableControls, а после последнего - EnableControls, это же может служить и флагом, т.е. примерно так procedure TDataModule1.Query1AfterScroll(DataSet: TDataSet); var a:tboonmark; begin if not Query1.ControlsDisabled() then begin Query1.DisableControls(); try a:= Query1.getbookmark; Query1.first; while not Query1.eof do begin ..... Query1.next; end; Query1.gotobookmark(a); Query1.freebookmark(a); finally Query1.EnableControls(); end; end; end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2003, 06:04 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=2012&tid=2117023]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 292ms |
| total: | 464ms |

| 0 / 0 |
