Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизCntrl+Delete –удаление записи через DBGrid Найти похожие ветки
← →
TrainerOfDolphins © (2006-06-20 13:36) [0]День добрый!
Есть DBGrid из которого можно удалять записи. Для этого у меня предусмотрено своё действие и свой диалог. Но в гриде есть встроенная функция: если нажимаешь Cntrl+Delete он спрашивает: “Delete record?” и если да, то стирает запись, обходя все мои запреты и проверки. Как это можно устранить?
Заранее благодарю.
← →
Плохиш © (2006-06-20 13:39) [1]dbgrid.options := dbgrid.options - [dgConfirmDelete];
← →
MsGuns © (2006-06-20 13:47) [2]1. TDataSet.BeforeDelete
2. TDBGrid.ReadOnly := true;
3. TDBGrid.OnKeyDown
4. Назначить контролу удаления (кнопке, меню..) ShortCut=Ctrl+Del
← →
Johnmen © (2006-06-20 13:49) [3]
> Плохиш © (20.06.06 13:39) [1]
Т.е. удалить не спрашивая? :)))
← →
TrainerOfDolphins © (2006-06-20 13:52) [4]
> Т.е. удалить не спрашивая? :)))
:):)
← →
Johnmen © (2006-06-20 13:58) [5]В общем, обрабатываем KeyDown грида.
if (ssCtrl in Shift) and (Key=VK_DELETE) then begin;
<здесь твой вопрос и удаление>;
Key:=0;
end;
← →
Плохиш © (2006-06-20 14:13) [6]
> Johnmen © (20.06.06 13:49) [3]
:-) Я спрашиваю разрешение на удаление в OnBeforeDelete, тогда уж никакая шельма мимо вопроса не пройдёт.
← →
TrainerOfDolphins © (2006-06-20 14:16) [7]
> В общем, обрабатываем KeyDown грида.
Ну это – первое, о чём я подумал.
Дело в том, что я описал действие удаления в ActionList и там же назначил эту комбинацию клавиш. И всё было бы хорошо, но в некоторых случаях мне нужно запретить это действие. Когда я его запрещаю, вылазит эта коварная встроенная фича дбгрида…
Можно сделать так:
а) присвоить моему действию шоткат не Ctrl+del, а del;
б) ввести пустое действие и присвоить ему шоткат Ctrl+del;
Но это всё равно как-то “почеши левое ухо правой рукой из-за затылка”. Я просто думал, мож есть какой-нть способ сказать гриду напрямую, что я не хочу, чтобы он лез в мои дела…
← →
Johnmen © (2006-06-20 14:24) [8]
> мож есть какой-нть способ сказать гриду напрямую, что я
> не хочу, чтобы он лез в мои дела…
В [5] в if только Key:=0
← →
TrainerOfDolphins © (2006-06-20 14:39) [9]
> В [5] в if только Key:=0
Работает!
← →
TrainerOfDolphins © (2006-06-20 14:42) [10]БОЛЬШОЕ СПАСИБО Johnmen-у и Плохишу за постоянное участие в моих топиках и неоценимую помощь! :)
← →
Плохиш © (2006-06-20 15:13) [11]
> TrainerOfDolphins © (20.06.06 14:39) [9]
Кстати, может стоит сказать гриду, что он ReadOnly? :-)
← →
TrainerOfDolphins © (2006-06-21 10:41) [12]Тоже вариант. Но в этом случае надо переустанавливать это свойство, каждый раз когда потребуется редактировать данные через грид. Так что [9] подходит как низя лучше. Key:=0 - шесть символов, и грид спит спокойно! :)
← →
MsGuns © (2006-06-21 10:44) [13]>Так что [9] подходит как низя лучше.
Этот способ весьма опасный.
← →
TrainerOfDolphins © (2006-06-21 10:51) [14]Чем?
← →
TrainerOfDolphins © (2006-06-22 11:42) [15]Я мучаюсь догадками :). Чем же это опасно?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c