Аватар для [XandeR]
31 / 31 / 3
Регистрация: 18.03.2009
Сообщений: 381
Записей в блоге: 2

Событие OnKeyPress if(Key==VK_DELETE)

20.04.2010, 23:09. Показов 8376. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в следующем:
В компоненте DBGrid в событии OnKeyPress прописываю VK_DELETE, но ничего не происходит
C++
1
2
3
4
5
6
7
8
9
void __fastcall TFLookActs::DBGridEh1KeyPress(TObject *Sender, wchar_t &Key)
{
if (Key==VK_RETURN) {
    Aux->ShowCard->Execute();
}
if (Key==VK_DELETE) {
    Aux->MoveToTrash->Execute();
}
}
по нажатию на энтер работает а del нет(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.04.2010, 23:09
Ответы с готовыми решениями:

Событие OnKeyPress
Доброго времени суток! Вопрос к программистам: Как сделать так что бы событие OnKeyPress выполнялось даже тогда когда окно не активно?...

событие OnKeyPress в MaskEdit
Здравствуйте, проблема такая: хочу сделать переход с MaskEdit на Edit, делаю так: if ( Key == VK_TAB ) Edit1->SetFocus(); Но...

Не срабатывает событие OnKeyPress в TreeView
Проблема такая: при перемещении по списку элементов в TreeView с помощью стрелок вверх/вниз не срабатывает событие OnKeyPress. Т.е. при...

8
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2010, 23:45
Я делал удаление через функцию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TMainForm::DelString()
{
        if(MainForm->ADOQuery1->RecordCount !=0)
     {
         AnsiString ds = "Âû äåèñòâèòåëüíî õîòèòå óäàëèòü âûáðàííóþ ñòðîêó? \n\n" + IntToStr(ADOQuery1->FieldByName("Invent_Number")->AsInteger)+" - "+ADOQuery1->FieldByName("Number_in_Lan")->AsString+" - "+ADOQuery1->FieldByName("Department")->AsString+" - "+ADOQuery1->FieldByName("Processor")->AsString+" - "+ADOQuery1->FieldByName("Memory")->AsString+" - "+ADOQuery1->FieldByName("HDD")->AsString+" - "+ADOQuery1->FieldByName("Room")->AsString;
     if (Application->MessageBox(ds.c_str(),"Ïîäòâåðæäåíèå óäàëåíèÿ ñòðîêè èç áàçû äàííûõ",MB_YESNO +MB_TOPMOST+ MB_ICONQUESTION)!=IDYES)
     {
         Abort();
     }
     else
     {
         ADOQuery1->Delete();
     }
C++
1
2
3
4
5
void __fastcall TFLookActs::DBGridEh1KeyPress(TObject *Sender, wchar_t &Key)
if (Key==VK_DELETE) 
{
 DelString();
}
0
 Аватар для [XandeR]
31 / 31 / 3
Регистрация: 18.03.2009
Сообщений: 381
Записей в блоге: 2
21.04.2010, 00:10  [ТС]
ну так у меня тоже через функцию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TAux::MoveToTrashExecute(TObject *Sender)
{
if (MessageBox(0," Вы действительно хотите переместить запись в корзину?","Запрос подтверждения",4)==6){
 
//переносим запись
ServiceSql->SQL->Clear();
ServiceSql->SQL->Add("INSERT INTO TRASH SELECT * FROM ACT_1 WHERE ACT_NUM='"+Aux->ACT_1->FieldByName("ACT_NUM")->AsAnsiString+"'");
ServiceSql->ExecSQL();
 
//удаляем из таблицы запись
Log("Акт пациента "+ActsQuery->FieldByName("ФИО")->AsAnsiString+" №"+ActsQuery->FieldByName("ACT_NUM_C")->AsAnsiString+" был перемещен в корзину");
ACT_1->Delete();
 
//перегружаем источники
ActsQuery->Close();
ActsQuery->Open();
TrashTable->Close();
TrashTable->Open();
}
}
только при нажати на Delete ничего вобще не происходит
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
21.04.2010, 00:13
KeyPrewive = true поставил?
Кстати по пробуй на KeyDown поставить
0
 Аватар для [XandeR]
31 / 31 / 3
Регистрация: 18.03.2009
Сообщений: 381
Записей в блоге: 2
21.04.2010, 00:14  [ТС]
что это такое и где его ставить?)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
21.04.2010, 00:16
У тебя на форме есть Свойство KeyPrewiev поставь его в true
0
 Аватар для [XandeR]
31 / 31 / 3
Регистрация: 18.03.2009
Сообщений: 381
Записей в блоге: 2
21.04.2010, 00:21  [ТС]
не помогает

Добавлено через 50 секунд
а вобще это дочерняя форма в MDI поэтому её поведение непредсказуемо..
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
21.04.2010, 00:21
Кстати по пробуй на KeyDown поставить
1
 Аватар для [XandeR]
31 / 31 / 3
Регистрация: 18.03.2009
Сообщений: 381
Записей в блоге: 2
21.04.2010, 00:59  [ТС]
работает))

Добавлено через 12 минут
а вот так вот :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TFCard::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
if (Key==VK_LEFT) {
 Aux->ActsQuery->Prior();
}
if (Key==VK_RIGHT) {
 Aux->ActsQuery->Next();
}
if (Key==VK_RETURN)
        {
 //     this->Perform(WM_NEXTDLGCTL, 0, 0);
        }
 if (Key==VK_DELETE) {
  Aux->MoveToTrash->Execute();
 }
 if (Key==VK_ESCAPE) {
  FCard->Close();
 }
}
выходит что то странное, почему то постоянно выполняется условие i
C++
1
2
3
f (Key==VK_LEFT) {
 Aux->ActsQuery->Prior();
}
при чем постоянно даже когда кнопка не нажата, в итоге я перелистнуть даже не могу запись
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.04.2010, 00:59
Помогаю со студенческими работами здесь

OnKeyDown или OnKeyPress событие в DLL
Здравствуйте, столкнулся с такой проблемой! У меня есть программа, очень простая, которая будет расширятся за счет плагинов. на форме...

Почему Vk_Delete срабатывает только на OnMouseUp, а на OnKeyPress и OnKeyDown - нет?
Почему Vk_Delete срабатывает только на OnMouseUp, а на OnKeyPress и OnKeyDown нет?

Из OnKeyDown переопределить Key для OnKeyPress
Задача: при нажатии определенных клавиш на клавиатуре задать для ввода в Edit.Text определенный символ. При событии OnKeyDown в процедуре...

Вопрос про событие OnKeyPress.
В общем, мне нужно, чтобы при нажатии на кнопки "вниз", "вправо", "влево", "вверх" переменная меняла свои значения и выводилась в лэйбл. Но...

Однократное действие в событие OnKeyPress
Здравствуйте. Помогите разобраться. Как сделать так, чтобы переменной, находящейся в событии OnKeyPress, всего один раз присвоилось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru