Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

как запретить скроллинг по датасету   Найти похожие ветки 

 
koks   (2006-02-27 09:45) [0]

Уважаемые мастера!

Мне нужно запретить навигацию по TDataset (при выполнении опред. условий). Подскажите как это сделать. Понимаю что нужно обрабатывать BeforeScroll - но как в этом обработчике "прервать скролл" не понимаю...

Заранее спасибо.


 
Johnmen ©   (2006-02-27 09:48) [1]

Какую именно навигацию запретить? Кто навигирует?


 
koks   (2006-02-27 09:52) [2]

Есть грид который связан с датасетом. Нужно запретить Prev/Next/First/Last в гриде в случае если выполняются определенные условия.


 
Lexer ©   (2006-02-27 09:52) [3]

Может вот это надо?
DataSet.DisableControls;


 
koks   (2006-02-27 10:01) [4]

2 Lexer
DisableControls "временно рвет связь". Мне нужно чтобы связь была, но чтобы датасет не давал перемещаться вперед-назад.


 
Johnmen ©   (2006-02-27 10:19) [5]

>Нужно запретить Prev/Next/First/Last в гриде

Это кнопки клавы и мыши? Или что?


 
koks   (2006-02-27 10:22) [6]

FibPlusDataSet.Next;
FibPlusDataSet.First;
FibPlusDataSet.Last;
FibPlusDataSet.Prev;


 
Ega23 ©   (2006-02-27 10:36) [7]


> DisableControls "временно рвет связь". Мне нужно чтобы связь
> была, но чтобы датасет не давал перемещаться вперед-назад.
>


Не рвёт он связь. Просто сообщения от TDataSet не передаются TDataSource"ам.
По-моему у тебя причинно-следственная связь нарушена. Попробуй ещё раз подробно описать то, что тебе нужно.


 
Sergey13 ©   (2006-02-27 10:44) [8]

2[4] koks   (27.02.06 10:01)
В BeforeScroll
if условие then abort;


 
Johnmen ©   (2006-02-27 10:47) [9]

>Нужно запретить Prev/Next/First/Last в гриде в случае если выполняются определенные условия.
>FibPlusDataSet.Next;
>FibPlusDataSet.First;
>FibPlusDataSet.Last;
>FibPlusDataSet.Prev;

if not <я запретил> then FibPlusDataSet.Next


 
koks   (2006-02-27 10:55) [10]

Итак - имеем грид. Грид связан с Датасорс-ом. Датасорс связан с TpFIBDataset.
По гриду можно перемещаться вверх-вниз используя DBNavigator (конктретные кнопки следующая-предыдущая-на первый- на последний). Кроме того, можно перемещаться клашишами "вверх" и "вниз".
Редактировать запись низя. НО! Находясь на записи можно открыть форму, которая позволит эту запись редактировать. Эта новая форма - не модальная. (Модальную не хочу по проч. причинам). Мне нужно запретить перемещения по первоначальному датасету если открыта форма, радактирующая конкретную запись. (Это и есть условие запрещения навигации).
Т.е.  

procedure TpFIBDataSet.BeforeScroll(Sender: TDataset);
begin
 if assigned(fmMyRecord) then
  begin
    MessageDlg("Треба закрыть форму!!!");
    ОтменитьСкроллинг    <<----    
  end
end

Так вот - вопрос в том как ОТМЕНИТЬ СКРОЛЛИНГ.


 
Vlad ©   (2006-02-27 10:59) [11]


> koks   (27.02.06 10:55) [10]


а [8] чем-то не подходит?


 
Mikhail V ©   (2006-02-27 11:05) [12]


> Модальную не хочу по проч. причинам

Позволю себе порекомендовать пересмотреть архитектуру приложения


 
Desdechado ©   (2006-02-27 11:11) [13]

при работе с БД модальность, имхо, единственный простой вариант сохранить целостность данных, иначе между формами возникают проблемы синхронизации данных (хорошо, еслитолько просмотровых, а если еще и изменяемых в разных формах, то это вообще завал)


 
Johnmen ©   (2006-02-27 11:29) [14]

>koks   (27.02.06 10:55) [10]

Кстати, не следует забывать, что перед скроллом будет неявно вызван Post, если требуется.


 
koks   (2006-02-27 12:36) [15]

Спасибо.



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

Текущий архив: 2006.04.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
1-1142596918
sav13
2006-03-17 15:01
2006.04.23
Переназначить родителя форме


3-1140954126
g.town
2006-02-26 14:42
2006.04.23
CDX


2-1144264669
skovorodka
2006-04-05 23:17
2006.04.23
Помогите, плиз, с запросом...


15-1143469162
Piter
2006-03-27 18:19
2006.04.23
Программа для определения mp3


2-1144263864
Nick_serov
2006-04-05 23:04
2006.04.23
Проблема округления числа