Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Навигатор и позиция в наборе данных.   Найти похожие ветки 

 
Карелин Артем ©   (2004-03-10 12:29) [0]

Навигатором не пользовался, поэтому извиняйте. Есть к примеру набор данных. Переходим на конец без помощи навигатора - кнопка Next становится недоступной только после того, как с этой последней позиции перейти на следующую навигатором. Та же история получается и на первой позиции.
Как лечить поведение навигатора на первой и последней позиции?


 
Соловьев ©   (2004-03-10 12:31) [1]

ActionList+Button - свой навигатор. Более удобный и понятный.


 
Reindeer Moss Eater ©   (2004-03-10 12:33) [2]

Странный вопрос после http://delphimaster.net/view/15-1078898920/

Как лечить? Разумеется уведомлением навигатора о событиях скрола датасета


 
stone ©   (2004-03-10 12:33) [3]

Кнопки навигатора становятся недоступны в момент EOF/BOF. Первая и последняя запись набора данных это еще не EOF/BOF.


 
VLAD-MAL   (2004-03-10 12:41) [4]

Как лечить поведение навигатора на первой и последней позиции?
Что его лечить? Посмотри код, да напиши свой. Там даже мне все ясно...


 
Карелин Артем ©   (2004-03-10 13:01) [5]

Ну чтож, придется писать. В момент RecNo=RecordCount после FetchAll надо будет дизеблить Next с Last, только как-то нехорошо так делать.


 
Reindeer Moss Eater ©   (2004-03-10 13:13) [6]

В момент RecNo=RecordCount после FetchAll надо будет дизеблить Next с Last, только как-то нехорошо так делать.

А что это даст?
А что будет если этого не делать?
А в чем смысл затеи?


 
VLAD-MAL   (2004-03-10 13:18) [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];
)


 
Johnmen ©   (2004-03-10 13:20) [8]

>Карелин Артем ©

Next;
NextButton.Enabled:=not EOF;  
if not EOF then Prior;


 
VLAD-MAL   (2004-03-10 13:24) [9]

Ну да, про Next/Prior/Last/Firs забыл написать... Сам не использую их, считаю, юзер в гриде сам пусть барахтается. Несколько кнопок в тулбар, + грид (DBGridEh), все - во фрейм - и вперед!.


 
Карелин Артем ©   (2004-03-10 13:24) [10]

Reindeer Moss Eater ©   (10.03.04 13:13) [6]
Сотвори стандартный грид, навигатор, набор данных и источник данных. Открой набор данных. Стоя на первой позиции нажми вперед, потом назад. Кнопка Prev доступна. Можно еще раз нажать назад стоя на первой записи. Только после этого она станет недоступна. То же самое и с последней записью.
Волнуются люди когда стоя на последней записи можно листнуть дальше. Особенно когда навигатор видно, а сетку нет. Задумаются о своем и ошибок наделают.


 
Reindeer Moss Eater ©   (2004-03-10 13:36) [11]

Задумаются о своем и ошибок наделают.

Не понял.
Они что, смогут уйти за пределы датасета только потому что чья-то там кнопка не задисэблена?
Бред.


 
Карелин Артем ©   (2004-03-10 13:40) [12]

Reindeer Moss Eater ©   (10.03.04 13:36) [11]
Зри в корень: если можно нажать на Next, значит что-то дальше есть. Они думают что перешли на другую запись, хотя она осталась та же.
Тема закрыта.


 
Reindeer Moss Eater ©   (2004-03-10 13:53) [13]

Вот именно - в корень, а не в небо.

Что такого произойдет, если юзер нажмет на доступную кнопку Next (стоя на последней записи) чего не произошло бы если бы кнопка была недоступна?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.057 c
14-1078345492
lak-b
2004-03-03 23:24
2004.04.04
вопросы хтмл


1-1079594675
Billy
2004-03-18 10:24
2004.04.04
Как узнать существует ли данная форма???


1-1079117965
Dest
2004-03-12 21:59
2004.04.04
Повторное использование процедур в разных формах


9-1063169423
Orc
2003-09-10 08:50
2004.04.04
Визуальный процесс загрузки


3-1078221353
Wild
2004-03-02 12:55
2004.04.04
Update DBF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский