Событие
2-как сделать чтоб например если мышь в некотором -прямоугольнике над голой формой то по нажатию клавишь вызывался обработчик формы??
3-И где узнать сообщения клавишь консоли(Delete = VK_DELETE ...)
1-У меня на форме есть PageControl с двумя -страницами(на страницах еще всякое) и свободная часть на которой я рисую так вот мне нужно чтоб по нажатию Delete стрелок происходили определенные действия, я написал обработчик KeyPress для формы но по нажатию он даже не вызывается ????? Если я правильно думаю тут чтото с фокусами???
2-как сделать чтоб например если мышь в некотором -прямоугольнике над голой формой то по нажатию клавишь вызывался обработчик формы??
3-И где узнать сообщения клавишь консоли(Delete = VK_DELETE ...)
TCustomForm::KeyPreview
TCustomForm::KeyPreview
Я поставил в конструкторе формы KeyPreview=True;
Он стал отлавливать кловиши, но Del и некоторые ещё клавиши он такими не считает!!!!
Я поставил в конструкторе формы KeyPreview=True;
Он стал отлавливать кловиши, но Del и некоторые ещё клавиши он такими не считает!!!!
Используй HOOK клавиатуры со своим обработчиком клавишь.
Я поставил в конструкторе формы 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);
2-как сделать чтоб например если мышь в некотором -прямоугольнике над голой формой то по нажатию клавишь вызывался обработчик формы??
BOOL PtInRect(
CONST RECT *lprc, // address некоторого прямоугольника
POINT pt // structure с координатами мыши
);
но все равно не совсем понял -
вызвать событие когда мышь проходит над некотором прямоугольником или когда в некотором прямоугольнике нажата кнопка мыши?
но все равно не совсем понял -
вызвать событие когда мышь проходит над некотором прямоугольником или когда в некотором прямоугольнике нажата кнопка мыши?
Мне нужно когда либо мышь находится в некотором прямоугольники и нажата клавиша, или считывается некий внутренний флажок flag, и при flag==1 и нажатом Del происодило действие.
но в форме есть TEdit TMemo они тоже отлавливают это сообщение а мне хотелось бы чтоб его поймал только этот обработчик а остальные элементы обработали бы это событие только при flag==0
Можно передать фокус на другой элемент, или (немогу понять только как ) снять фокус TEDIT а ???
Control->SetFocus() - устанавливает фокус на Control.
Control->Focused() - показывает в фокусе Control или нет