![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Навигатор и позиция в наборе данных. [D5]
Карелин Артем © (2004-03-10 12:29:00)Навигатором не пользовался, поэтому извиняйте. Есть к примеру набор данных. Переходим на конец без помощи навигатора - кнопка Next становится недоступной только после того, как с этой последней позиции перейти на следующую навигатором. Та же история получается и на первой позиции.
Как лечить поведение навигатора на первой и последней позиции?
Reindeer Moss Eater (2004-03-10 13:53:00) [1]Вот именно - в корень, а не в небо.
Что такого произойдет, если юзер нажмет на доступную кнопку Next (стоя на последней записи) чего не произошло бы если бы кнопка была недоступна?
Карелин Артем (2004-03-10 13:40:00) [2]Reindeer Moss Eater © (10.03.04 13:36) [11]
Зри в корень: если можно нажать на Next, значит что-то дальше есть. Они думают что перешли на другую запись, хотя она осталась та же.
Тема закрыта.
Reindeer Moss Eater (2004-03-10 13:36:00) [3]Задумаются о своем и ошибок наделают.
Не понял.
Они что, смогут уйти за пределы датасета только потому что чья-то там кнопка не задисэблена?
Бред.
VLAD-MAL (2004-03-10 13:24:00) [4]Ну да, про Next/Prior/Last/Firs забыл написать... Сам не использую их, считаю, юзер в гриде сам пусть барахтается. Несколько кнопок в тулбар, + грид (DBGridEh), все - во фрейм - и вперед!.
Карелин Артем (2004-03-10 13:24:00) [5]Reindeer Moss Eater © (10.03.04 13:13) [6]
Сотвори стандартный грид, навигатор, набор данных и источник данных. Открой набор данных. Стоя на первой позиции нажми вперед, потом назад. Кнопка Prev доступна. Можно еще раз нажать назад стоя на первой записи. Только после этого она станет недоступна. То же самое и с последней записью.
Волнуются люди когда стоя на последней записи можно листнуть дальше. Особенно когда навигатор видно, а сетку нет. Задумаются о своем и ошибок наделают.
Johnmen (2004-03-10 13:20:00) [6]>Карелин Артем ©
Next;
NextButton.Enabled:=not EOF;
if not EOF then Prior;
VLAD-MAL (2004-03-10 13:18:00) [7]Ну, например:
procedure Tfrb_GridFrame.ShowRecordsActions;
begin
if DataSet.State in [dsEdit, dsInsert] then begin
actUpd.Enabled := not DataSet.ReadOnly;
actUndo.Enabled := True;
actAdd.Enabled := False;
actEdit.Enabled := False;
actDel.Enabled := True;
actRefreshDataSet.Enabled := False;
end else begin
actUpd.Enabled := False;
actUndo.Enabled := False;
actAdd.Enabled := not DataSet.ReadOnly;
// Если непустой набор данных, то разрешаем удаление, изменение
if DataSet.RecordCount > 0 then begin
actEdit.Enabled := True;
actDel.Enabled := not DataSet.ReadOnly;
end else
actDel.Enabled := False;
actRefreshDataSet.Enabled := True;
end;
Вызывай эту лабуду на DataSource.OnDataChange / OnStateChange, а также после изменения режима доступа к набору данных (ну, например, когда запрещаешь/разрешаешь изменения в наборе данных - типа DBGridEh1.ReadOnly := True или DataSource.AllowedUpdateKinds := [] (FIB+)/ DBGridEh1.ReadOnly := False; DataSource.AllowedUpdateKinds := [ukModify, ukInsert, ukDelete];
)
Reindeer Moss Eater (2004-03-10 13:13:00) [8]В момент RecNo=RecordCount после FetchAll надо будет дизеблить Next с Last, только как-то нехорошо так делать.
А что это даст?
А что будет если этого не делать?
А в чем смысл затеи?
Карелин Артем (2004-03-10 13:01:00) [9]Ну чтож, придется писать. В момент RecNo=RecordCount после FetchAll надо будет дизеблить Next с Last, только как-то нехорошо так делать.
VLAD-MAL (2004-03-10 12:41:00) [10]Как лечить поведение навигатора на первой и последней позиции?
Что его лечить? Посмотри код, да напиши свой. Там даже мне все ясно...
Reindeer Moss Eater (2004-03-10 12:33:00) [11]Странный вопрос после http://www.delphimaster.ru/cgi-bin/forum.pl?id=1078898920&n=3
Как лечить? Разумеется уведомлением навигатора о событиях скрола датасета
stone (2004-03-10 12:33:00) [12]Кнопки навигатора становятся недоступны в момент EOF/BOF. Первая и последняя запись набора данных это еще не EOF/BOF.
Соловьев (2004-03-10 12:31:00) [13]ActionList+Button - свой навигатор. Более удобный и понятный.