Главная страница
    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.48 MB
Время: 0.011 c
1-1142496507
Леван
2006-03-16 11:08
2006.04.23
Как найти в end, соответствующий begin-у


2-1144651711
Locke
2006-04-10 10:48
2006.04.23
как сохраить рисунок с канвы?


15-1143774590
Nic
2006-03-31 07:09
2006.04.23
Deep Forest


15-1143574068
Petr V. Abramov
2006-03-28 23:27
2006.04.23
Вследствие действий электриков...


15-1144081818
Mozart
2006-04-03 20:30
2006.04.23
А как на западе с лицензионным ПО (подумал я)....





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