Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Событие

5.9K
25 февраля 2005 года
vladlenn
32 / / 17.02.2005
1-У меня на форме есть PageControl с двумя -страницами(на страницах еще всякое) и свободная часть на которой я рисую так вот мне нужно чтоб по нажатию Delete стрелок происходили определенные действия, я написал обработчик KeyPress для формы но по нажатию он даже не вызывается ????? Если я правильно думаю тут чтото с фокусами???
2-как сделать чтоб например если мышь в некотором -прямоугольнике над голой формой то по нажатию клавишь вызывался обработчик формы??
3-И где узнать сообщения клавишь консоли(Delete = VK_DELETE ...)
246
25 февраля 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by vladlenn
1-У меня на форме есть PageControl с двумя -страницами(на страницах еще всякое) и свободная часть на которой я рисую так вот мне нужно чтоб по нажатию Delete стрелок происходили определенные действия, я написал обработчик KeyPress для формы но по нажатию он даже не вызывается ????? Если я правильно думаю тут чтото с фокусами???
2-как сделать чтоб например если мышь в некотором -прямоугольнике над голой формой то по нажатию клавишь вызывался обработчик формы??
3-И где узнать сообщения клавишь консоли(Delete = VK_DELETE ...)


TCustomForm::KeyPreview

5.9K
25 февраля 2005 года
vladlenn
32 / / 17.02.2005
Цитата:
Originally posted by GIZMO

TCustomForm::KeyPreview



Я поставил в конструкторе формы KeyPreview=True;

Он стал отлавливать кловиши, но Del и некоторые ещё клавиши он такими не считает!!!!

259
25 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by vladlenn


Я поставил в конструкторе формы KeyPreview=True;

Он стал отлавливать кловиши, но Del и некоторые ещё клавиши он такими не считает!!!!


Используй HOOK клавиатуры со своим обработчиком клавишь.

246
25 февраля 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by vladlenn


Я поставил в конструкторе формы KeyPreview=True;

Он стал отлавливать кловиши, но Del и некоторые ещё клавиши он такими не считает!!!!


Я по английски понимаю на уровне 4-го класса(приходится у сына д/з проверять):
F1->Index->OnKeyPress->Ok.
...
Occurs when a user presses a single character key.
Мне кажется здесь написано:
Наступает когда юзер нажимает одну символьную кей.
To respond to non-ASCII keys or key combinations, use the OnKeyDown or OnKeyUp event handlers.
А здесь написано:
vladlenn если хочешь поймать ЛЮБУЮ кей или комбинацию используй OnKeyDown.
А еще приглядись ко второму параметру.
OnKeyPress(System::TObject* Sender, char &Key);

Цитата:
Originally posted by vladlenn

2-как сделать чтоб например если мышь в некотором -прямоугольнике над голой формой то по нажатию клавишь вызывался обработчик формы??


BOOL PtInRect(

CONST RECT *lprc, // address некоторого прямоугольника
POINT pt // structure с координатами мыши
);

но все равно не совсем понял -
вызвать событие когда мышь проходит над некотором прямоугольником или когда в некотором прямоугольнике нажата кнопка мыши?

5.9K
25 февраля 2005 года
vladlenn
32 / / 17.02.2005
Цитата:
Originally posted by GIZMO
но все равно не совсем понял -
вызвать событие когда мышь проходит над некотором прямоугольником или когда в некотором прямоугольнике нажата кнопка мыши?



Мне нужно когда либо мышь находится в некотором прямоугольники и нажата клавиша, или считывается некий внутренний флажок flag, и при flag==1 и нажатом Del происодило действие.

5.9K
25 февраля 2005 года
vladlenn
32 / / 17.02.2005
Если отлавливать OnKeyDown то, да все работает,
но в форме есть TEdit TMemo они тоже отлавливают это сообщение а мне хотелось бы чтоб его поймал только этот обработчик а остальные элементы обработали бы это событие только при flag==0
5.9K
25 февраля 2005 года
vladlenn
32 / / 17.02.2005
Можно передать фокус на другой элемент, или (немогу понять только как ) снять фокус TEDIT а ???
259
25 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by vladlenn
Можно передать фокус на другой элемент, или (немогу понять только как ) снять фокус TEDIT а ???


Control->SetFocus() - устанавливает фокус на Control.
Control->Focused() - показывает в фокусе Control или нет

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог