Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.011 c
2-1144545460
001
2006-04-09 05:17
2006.04.23
PDOXUSRS.NET


15-1142922769
Ученик чародея
2006-03-21 09:32
2006.04.23
213 вещей, которые запрещено делать в ВС США.


3-1140869588
ViktorZ
2006-02-25 15:13
2006.04.23
Засунуть все в одну таблицу:


15-1143709606
xayam
2006-03-30 13:06
2006.04.23
Кто-нибудь знает что за файл с расширением .vip ?


4-1139213874
Chaser
2006-02-06 11:17
2006.04.23
Как определить на весь ли экран DOS оно





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский