powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как обработать Ctrl+Delete в DBGrid?
5 сообщений из 5, страница 1 из 1
Как обработать Ctrl+Delete в DBGrid?
    #32318710
surovi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как обработать Ctrl+Delete в DBGrid?

Скажите пожалуйста каким образом можно добавить какую-либо проверку перед
удалением записи в DBGrid (перед появлением диалога подтверждающего удаление или без него) при помощи клавиш Ctrl+Delete?

Спасибо за сотрудничество.
...
Рейтинг: 0 / 0
Как обработать Ctrl+Delete в DBGrid?
    #32318719
Фотография Anonimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если данные береш из Table в Events beforeDelete
...
Рейтинг: 0 / 0
Как обработать Ctrl+Delete в DBGrid?
    #32318804
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такие вещи действительно нужно делать на уровне датасета.

Код: plaintext
1.
2.
3.
4.
procedure TForm1.ClientDataSetBeforeDelete(DataSet: TDataSet);
begin
  if Application.MessageBox('Удалить запись?',
    'Подтверждение', MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) <> ID_YES then Abort;
end;
...
Рейтинг: 0 / 0
Как обработать Ctrl+Delete в DBGrid?
    #32318930
surovi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за ответы

Но я решил эту проблему следующим образом:

procedure TFMain.DBGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ( ( Key = VK_DELETE ) and ( ssCtrl in Shift ) ) then
begin
if ( <Мое условие> ) then
begin
Key:= 0;
end;
end;
end;

Причем, надо писать обработчик события KeyDown, а не KeyUp,
иначе удаление записи будет происходить.

Еще раз спасибо за ответы
...
Рейтинг: 0 / 0
Как обработать Ctrl+Delete в DBGrid?
    #32318944
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так и напиши то же самое, тока на BeforeDelete. А то у тебя получается, что если пользователь на кнопки надавит, то условие проверится, а если ты сам некоторое время спустя добавишь вызов метода Delete и эта проверка у тебя не выполниться.

Код: plaintext
1.
2.
3.
procedure TForm1.ClientDataSetBeforeDelete(DataSet: TDataSet);
begin
  if ( <Твое условие> ) then Abort;
end;
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как обработать Ctrl+Delete в DBGrid?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]