Главная страница
    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.013 c
4-1138802484
DDDiM
2006-02-01 17:01
2006.04.23
шпион за com портом


2-1144658573
Рафик
2006-04-10 12:42
2006.04.23
Работа с ADO


15-1143831562
Мазут Береговой
2006-03-31 22:59
2006.04.23
Течет память...


2-1144751733
speed
2006-04-11 14:35
2006.04.23
Delphi &amp; Access


3-1139914203
DelphiN!
2006-02-14 13:50
2006.04.23
Как в FB изменить стандартный пароль





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