Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с клавой, Перехват нажатия кнопки 
:(
    Опции темы
SAVANE
Дата 3.9.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 20.7.2006
Где: Украина, Полтава

Репутация: нет
Всего: 1



Когда в пустой форме прописываю процедуру которая обрабатівает нажатие кнопки.
Код

procedure TForm1.FormClick(Sender: TObject);
begin
if kay=#13 then ShowMessage('Нажат Ентер');
end;


То все работает!!!

Когда же помещаю на форму любой обьект: кнопку, поле, и т.д.
уже не перехватівает нажатие!

 smile 

В чем траблы?

--------------------
Be not afraid of growing slowly, be afraid only of standing still!
PM MAIL WWW ICQ   Вверх
SGTeam
Дата 3.9.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006

Репутация: нет
Всего: нет



Хм.......А не пробовал в обработчике OnKeyPress помещать свой код?тогда в обработчиках(onkeypress)  других контролов на форме необходимо вызывать Form.OnKeyPress.
PM MAIL   Вверх
Matematik
Дата 3.9.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(SGTeam @  3.9.2006,  16:03 Найти цитируемый пост)
тогда в обработчиках(onkeypress)  других контролов на форме необходимо вызывать Form.OnKeyPress.

необязательно, Form.KeyPreview := True ж 
PM MAIL WWW ICQ   Вверх
Lence
Дата 3.9.2006, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

Репутация: 3
Всего: 3



можно еще и в 

KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
Rodman
Дата 3.9.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Ты слышал про библиотеку JEDI???

Если есть возможность скачай (она бесплатная)....

Там есть компонент JvApplicationHotKey1... хоть на него можно повесить только один набор, но работает всегда... smile 
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Lence
Дата 3.9.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

Репутация: 3
Всего: 3



еще есть отдельный компонент HotKeyManager
с ним можно отловить все что хочешь, даже если программа не активна а где-то спрятана.. 
--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
Alexeis
Дата 4.9.2006, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



SAVANE, все очень просто сообщения получает окно с фокусом ввода, если бросить на форму компонент, то он и получит фокус ввода. Проще всего использовать application.onMessage так как через него проходят многие сообщения, но он кажись не получает сообщения посланные postmessage, надо попробовать.

Добавлено @ 00:48 
Работает!
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure fmsg(var Msg: TMsg; var Handled: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.fmsg(var Msg: TMsg; var Handled: Boolean);
begin
  if Msg.message = WM_KEYDOWN
  then
    ShowMessage('нажата');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := fmsg;
end;




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Fedia
Дата 4.9.2006, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



Rodman
alexeis1, если не секрет, то чем 
Код

Form.KeyPreview := True
 не устраивает ?



--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
SAVANE
Дата 4.9.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 20.7.2006
Где: Украина, Полтава

Репутация: нет
Всего: 1



Спасибо!!!

Form.KeyPreview := True

 реально то что было нужно.

--------------------
Be not afraid of growing slowly, be afraid only of standing still!
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 4.9.2006, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Fedia, я и не говорил что не устраивает, просто перехват на уровне приложения еще более глобальный. Я думаю, что хорошо когда есть много рабочих вариантов, тогда можно выбрать тот который устраивает больше. smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0838 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.