Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];

Вниз

Как запретить удаление строк по Ctrl+Del   Найти похожие ветки 

 
Vemer   (2003-10-08 01:05) [0]

Доброго времени суток!
Как можно запретить удаление строк в DBGRID по нажатию СTRL+DEL?
Я уже с горя и в BEFORE_DELETE гадости всякие писал, и в \VCL\DBGrids.PAS залез и пробовал окружать VK_DELETE фигурными скобками, но ни фига. Может я не тот файл ковырял? В общем посоветуйте чего-нибудь пожалуйста.


 
Zacho   (2003-10-08 01:09) [1]

Хоть по Ctrl-Del, хоть еще как-нибудь - в BeforePost напиши Abort :-))


 
kaif   (2003-10-08 01:26) [2]

По-моему там в Options где-то было ConfirmDelete (или это в DBNavigator?) - вот память! склероз...
В общем. Ложишь TActionList. Суешь туда TAction с ShortCut = Ctrl+Del и в обработчик Execute записываешь точку с запятой. Я думаю шорткат убьет это дело. Может есть способ еще как shortCut создать пустой. А можно и обработчик оконных сообщений перехватить, конечно.

2 Zacho © (08.10.03 01:09) [1]
Не в BeforePost, а в BeforeDelete.
Это самое простое решение. Но тогда вообще нифига не удалить. А челу нужно, чтобы из dbgrid-а не удалялось по ctrl+Del.


 
Johnmen   (2003-10-08 01:34) [3]

Да не, мужики, самое простое - отработать OnKeyDown.
Если ctrl+del, то ничего и не делать, Key:=0
;)


 
kaif   (2003-10-08 01:40) [4]

2 Johnmen © (08.10.03 01:34) [3]
А я вот подумал... Еще лучше у формы отработать OnKeyDown. И KeyPreview = True поставить! Тогда сколько бы гридов на форму не положили, у них нифига ctrl+del работать не будет!
:)


 
Zacho   (2003-10-08 01:41) [5]

А я обычно попап-меню лажу с шорткутом Ctrl-Del :)


 
kaif   (2003-10-08 01:59) [6]

2 Zacho © (08.10.03 01:41) [5]
А я обычно попап-меню лажу с шорткутом Ctrl-Del :)
;)


 
Zacho   (2003-10-08 02:05) [7]


> kaif © (08.10.03 01:59) [6]

Правильно заметил :)
Именно лажу :)))


 
Deniz   (2003-10-08 07:08) [8]

Лучше все таки у Grid"а onKeyDown
А еще можно ReadOnly выставить, и тогда у юзера воообще прав не будет


 
MsGuns   (2003-10-08 11:26) [9]

Вешать OnKeyXXX для контроля за праввкой датасета на грид - это, ИМХО, верх маразма ! Причем здесь грид, господа-товарищи ? Где ваша логика мастаки ? Удаление чего, строки грида ? БЕЗОБРРРАЗИЕ !!! ЧЕМУ УЧИТЕ МОЛОДУЮ ПОРОСЛЬ ? Я НА ВАС ПОЖАЛУЮСЬ АР и app одновременно !!!

Только через экшины и шорткаты.

ЗЫ Совсем распустились, сладу нет.

ЗЗЫ. Блин !

ЗЗЗЫ. БЛИНННН !!!


 
Johnmen   (2003-10-08 11:39) [10]

>MsGuns © (08.10.03 11:26)

"И незачем так орать" (c) не помню

Если ты не сделаешь обработку, то ее за тебя сделает контрол. Видимо, он тоже маразматик...
В следовании некоей идеологии не надо доходить до полной упертости, надо быть гибче.
И есть еще такое дело, как вкус.


 
MsGuns   (2003-10-08 13:50) [11]

>Johnmen © (08.10.03 11:39) [10]
>В следовании некоей идеологии не надо доходить до полной упертости, надо быть гибче

А в глаз ? ;)))))))


 
Johnmen   (2003-10-08 14:08) [12]

>MsGuns © (08.10.03 13:50)

Нэ надо 8^)))


 
Жук   (2003-10-08 14:25) [13]

Прикольно будет посмотреть, как поссорились до глазобития MsGuns © и Johnmen © :-)))


 
Val   (2003-10-08 14:41) [14]

>Жук © (08.10.03 14:25) [13]
появятся рядом с никами вторые синие кружочки с С в обратную сторону :)


 
Anatoly Podgoretsky   (2003-10-08 15:12) [15]

MsGuns © (08.10.03 11:26) [9]
Правильно, я за OnBeforeDelete, а для тех кого пугает, что нельзя удалить в других случаях напоминаю про флаги.


 
Johnmen   (2003-10-08 15:51) [16]

>MsGuns ©
>Anatoly Podgoretsky ©

Осталось только убрать "Delete record ?" :0)
Это во-первых. А во-вторых, автор четко сказал, что не удалять по Сtrl+Del. А в остальных случаях м.б. надо удалять. А вы его грубо обрубили :)))


 
Romkin   (2003-10-08 16:05) [17]

Зачем флаги? Это уж путаться так путаться. Ctrl+Del, имхо, специфично для DBGrid, так что все нормально


 
Anatoly Podgoretsky   (2003-10-08 16:10) [18]

Johnmen © (08.10.03 15:51) [16]
Когда это он успел сказать, я не заметил.


 
Romkin   (2003-10-08 16:12) [19]

2Anatoly Podgoretsky Вторая строка вопроса :)))


 
Anatoly Podgoretsky   (2003-10-08 16:17) [20]

Ну вижу я ее

Как можно запретить удаление строк в DBGRID по нажатию СTRL+DEL

if not flag then abort
flag ;= False


 
Romkin   (2003-10-08 16:19) [21]

Почему не естественное OnKeyDown?


 
Vemer   (2003-10-08 16:29) [22]

Снова я.
Спасибо за ответы.
Как правильно поймать в OnKeyDown комбинацию CTRL+DEL.
Просто Delfi дома а нормальный Инет на работе :).
Может так:
IF (Key = VK_Control + VK_Delete) Then
exit;

Заранее благодарен за пример.


 
Romkin   (2003-10-08 16:33) [23]

if (ssCtrl in Shift) and (Key = VK_DELETE) then Key = 0;


 
Anatoly Podgoretsky   (2003-10-08 16:41) [24]

Romkin © (08.10.03 16:19) [21]
Конечно можно, но не люблю я сажать на этот обработчик


 
Romkin   (2003-10-08 16:44) [25]

Я тоже. И не сажаю. Но мало ли...


 
Anatoly Podgoretsky   (2003-10-08 16:45) [26]

Родственные души


 
Anatoly Podgoretsky   (2003-10-08 16:46) [27]

У меня правда проблемы нет - Dataset ReadOnly


 
Johnmen   (2003-10-08 16:56) [28]

Все-таки в данном случае keydown оправдано. Ведь мы всего лишь присекаем попытку контрола по-своему, одному ему ведомым способом, среагировать на ctrl+del. При этом нигде ничего не говорим, что делать с НД...
А в остальном согласен. :)


 
Delirium^.Tremens   (2003-10-08 17:07) [29]


> Deniz © (08.10.03 07:08) [8]
> Лучше все таки у Grid"а onKeyDown
> А еще можно ReadOnly выставить, и тогда у юзера воообще
> прав не будет


Лучше просто Grid с формы убрать и забыть о боли...
:-)))


 
MsGuns   (2003-10-08 17:12) [30]

Блин, чем чепуховее квест, тем, блин, бОльше толпы на него слетается. Ну, чесслово, ну как дети ! Вы б еще обоссали вопрос о том, как в гриде нарисовать вместо квадратного ползунка восьмиугольный... ВОЗМУТИТЕЛЬНО, серьезные ж люди, а как детки малые ;))))


 
MsGuns   (2003-10-08 17:20) [31]

Боже милосердный ! Ну, конечно же обсосали , а не так, как вышло. Позор на мои седины ! Прошу прощения у всех - это, видит бог, не нарочно.
ЗЫ. Спасибо знакомому, лазил в форуме, увидел - позвонил - пристыдил.


 
Johnmen   (2003-10-08 17:36) [32]

Видимо высший разум направлял твои пальцы по клаве, когда набирал выделенное слово в первом варианте. Ведь именно так и делают многие. И я иногда...:)

Казалось бы, причем здесь чепуховое путешествие ?
:)


 
MsGuns   (2003-10-08 17:43) [33]

>Johnmen © (08.10.03 17:36) [32]

А чего это ты поголубел-то ? Неужель Отцы тебя оценили и повысили ? Поздравляю, Жень, ИМХО, абсолютно заслуженно ;))


 
Johnmen   (2003-10-08 17:53) [34]

>MsGuns © (08.10.03 17:43)

Да, повысили, как я ни сопротивлялся...:)
Спасибо за поздравление !


 
Anatoly Podgoretsky   (2003-10-08 17:55) [35]

Неужели недавно, по моему ты всегда такой был?


 
Romkin   (2003-10-08 18:00) [36]

:))) АР, ну посмотри на его значок в начале ветки...


 
Vlad   (2003-10-08 18:01) [37]

Johnmen ©, давно уже пора было ! :)))
Поздравляю!
(автор - сорри за оффтоп)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.01 c
1-89355
TUser
2003-10-16 09:18
2003.10.27
Перестал ловиться глюк!


6-89427
TButton
2003-08-30 20:15
2003.10.27
Asynchronous socket error 10054


3-89152
Игоряныч
2003-09-19 08:03
2003.10.27
Splash при подключении к БД через ADO???


1-89217
Новичок
2003-10-14 05:02
2003.10.27
Проблема с combobox


1-89270
ИМХО
2003-10-13 11:40
2003.10.27
PowerPoint





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