| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Как узнать, что курсор находится на последней зап |
| Автор: Mihas 23.3.2009, 15:16 |
| У меня Paradox, BDE. Мне нужно создать условие: если курсор находится на первой записи, тогда... если курсор находится на последней записи тогда... В таблице есть сортировочное поле, на форме две кнопки "Вверх" и "Вниз", с их помощью я изменяю значения в этом поле и тем самым перемещаю записи. При достижении курсором первой записи, кнопка "Вверх" становится недоступной (UpBtn.Enabled := RecNo <> 1;), а вот с последней записью проблема: DownBtn.Enabled := not Eof; - неработает. DownBtn.Enabled := RecNo <> RecordCount; - не работает. DownBtn.Enabled := RecNo < RecordCount; - не работает. Как быть? |
| Автор: Cashey 23.3.2009, 15:24 |
| DownBtn.Enabled := RecNo = RecordCount; или DownBtn.Enabled := RecNo = RecordCount-1; |
| Автор: Mihas 23.3.2009, 15:35 | ||
Ни то, ни другое - не сработало... |
| Автор: pseud 23.3.2009, 15:54 | ||
|
| Автор: Mihas 23.3.2009, 16:34 |
Не сработало... |
| Автор: Cashey 23.3.2009, 16:47 |
надо понять чему у вас RecNo равно. Если стоит сортировка, то RecNo не будет равно номеру видимой записи. |
| Автор: Akella 23.3.2009, 16:58 |
| а более полный код |
| Автор: pseud 23.3.2009, 17:13 |
| Mihas, выкладывай тестовый небольшой (одна таблица, одна форма) проект НЕРАБОЧИЙ. |
| Автор: Kbl4AH 23.3.2009, 18:43 | ||
Может как-то так?
|
| Автор: Mihas 23.3.2009, 19:18 |
Не прошло... |
| Автор: Kbl4AH 23.3.2009, 19:34 |
| Mihas, а можешь весь проект выложить? |
| Автор: Akella 24.3.2009, 09:42 |
| С DataSet.EOF я давно уже поимел дело. Проблема была в том, что когда курсор становится на последнюю запись, то EOF всё равно ещё возвращает False. Т.е. последняя запись - это не конец файла. А когда на последней записи я вызывал Next, вот тогда EOF возвращал True. |
| Автор: pseud 24.3.2009, 10:14 | ||||
c точки зрения нас это баг. с точки зрения разработчиков - это норма:
особенно радует пункт: Call a dataset’s Next method, and the method fails because the current record is already the last row in the dataset. |