C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
DBNavigator, как переназначить обработчики кнопок?
trigger
  Отправлено: 28.01.2005, 11:25


Не зарегистрирован







как переназначить обработчики кнопок в сабже?

я хочу чтоб выполнялся мой запрос сс удалением строки. если я нажимаю кнопку "-" (удалить), то навигатор пытается это сделать сам. как мне ему помешать?
например в случае вставки, я в событии датасета beforinsert делаю dataset->cancel() и все получается.... но в случае с удалением и обновлением такая тема не проходит...
full_lamer
Отправлено: 28.01.2005, 11:38


Машинист паровоза

Группа: Участник
Сообщений: 225



в событие клика в навигатере OnClick, есть параметр Button (TNavigateBtn) — используй это.
trigger
Отправлено: 28.01.2005, 12:05


Не зарегистрирован







действительно не обратил внимания на это событие навигатора...

но тока не получается чего-то....
пишу в нем:
ShowMessage("AAA");

нажимаю минусик на навигаторе и не вижу своего сообщения...


а еще у меня свойство ConfirmDelete = false;
а когда я нажимаю Ctrl+Del у меня все равно запрашивается подтверждение..
шо за я не знаю ..?!
full_lamer
Отправлено: 28.01.2005, 12:31


Машинист паровоза

Группа: Участник
Сообщений: 225



CODE
void __fastcall TForm1::DBNavigator1Click(TObject *Sender,
TNavigateBtn Button)
{
if (Button == nbDelete)
{
ShowMessage("Delete is delete");
}
}


Отредактировано full_lamer — 28/01/2005, 13:34
full_lamer
Отправлено: 28.01.2005, 12:41


Машинист паровоза

Группа: Участник
Сообщений: 225



CODE
void __fastcall TForm1::ADOQuery1BeforeDelete(TDataSet *DataSet)
{
 ShowMessage("Delete is delete");
}
а у меня получилось...

зы. ADOQuery — тоже DataSet...
trigger
Отправлено: 28.01.2005, 14:26


Не зарегистрирован







а у меня
void __fastcall TForm1::DBNavigator1Click(TObject *Sender,
TNavigateBtn Button)
{
if (Button == nbDelete)
{
ShowMessage("Delete is delete");
}
}
не работает!

а
void __fastcall TForm1::ADOQuery1BeforeDelete(TDataSet *DataSet)
{
ShowMessage("Delete is delete");
}
работает, но после этого все равно навигатор пытается удалить запись. поскольку это ему не удается, он пишет: "недостаточно сведений ключевого поля для обновления"...

т.е. проблема так и остается нерешенной..

зы у меня тоже ADOQuery.
full_lamer
Отправлено: 28.01.2005, 14:31


Машинист паровоза

Группа: Участник
Сообщений: 225



ладно — Query forever! головной боли меньше будет чем с навигатором... а действия примерно теже самые...

зы. лично я такими вещами как навигатор не полбзуюсь еще со школы... все пишется на здоровых запросах. ведь в принципе и навигатор посылает запросы к БД...
trigger
Отправлено: 28.01.2005, 14:50


Не зарегистрирован







дык и я с навигатором вообще не работаю...
но пользователь сказал, что хочет такие вот кнопочки...
со вставкой и редактированием я разобрался. я блокирую навигатор, и предлагаю пользователю форму для ввода новых значений или редактирования старых... откуда потом запросом делаю insert/update
но вот проблема возникла с удалением...
блин. почему же у меня не работает... ((
full_lamer
Отправлено: 28.01.2005, 15:10


Машинист паровоза

Группа: Участник
Сообщений: 225



а ты свои кнопки создай и замаскируй их под навигатор — зачем изголятся — и перехватывать — блокировать...

Вернуться в Вопросы программирования в C++Builder