Форум: "Базы";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
Внизкак запретить скроллинг по датасету Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c