Главная страница
    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.017 c
2-1151047825
KygECHuK
2006-06-23 11:30
2006.07.09
Работа с TChart


2-1151044171
Dilmo
2006-06-23 10:29
2006.07.09
работа с Access


2-1150881191
Dmitrij_K
2006-06-21 13:13
2006.07.09
Номер выделенной строки в StringGrid


2-1150349607
Jenny
2006-06-15 09:33
2006.07.09
TStringGrid работа с колонками


15-1149869397
dimodim
2006-06-09 20:09
2006.07.09
AT2ATX





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