Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1149885371
Normality
2006-06-10 00:36
2006.07.09
Простое БД-приложение


1-1148546057
Alex35
2006-05-25 12:34
2006.07.09
Создать меню для дочерней формы


2-1150796160
TrainerOfDolphins
2006-06-20 13:36
2006.07.09
Cntrl+Delete –удаление записи через DBGrid


2-1150969625
Neket
2006-06-22 13:47
2006.07.09
Дата


3-1146994013
illuha
2006-05-07 13:26
2006.07.09
Не сохраняются *.jpg в Access





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