Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

Как отследить мессадж WM_KeyDown при редактировании Edita   Найти похожие ветки 

 
AlexR   (2004-07-16 04:10) [0]

Сабж. Можно ли разрешить срабатывание мессага WM_KeyDown при редактировании текста в поле Edit


 
TUser ©   (2004-07-16 04:19) [1]

Надо написать своего наследника.


 
AlexR   (2004-07-16 04:31) [2]


> TUser ©   (16.07.04 04:19) [1]

А что дальше. Что где прописывать?


 
TUser ©   (2004-07-16 04:46) [3]

Ну, сделай, например, так
unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   procedure MyOn(Sender:TObject);
   { Private declarations }
 public
   { Public declarations }
 end;

 TMyEdit = class(TEdit) // TCustomEdit
  private
   FOnMyKeyDown:TNotifyEvent;
   procedure WMKD(var Msg:TWMKeyDown); message wm_keydown;
  published
   property OnMyKeyDown:TNotifyEvent read FOnMyKeyDown write FOnMyKeyDown;
  end;

var
 Form1: TForm1;
 Ed1:TMyEdit;

implementation

{$R *.dfm}

procedure TMyEdit.WMKD(var Msg:TWMKeyDown);
begin
  if assigned(FOnMyKeyDown) then
     FOnMyKeyDown(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Ed1:=TMyEdit.Create(Application);
  Ed1.top:=10;
  Ed1.left:=20;
  Ed1.Parent:=Self;
  Ed1.OnMyKeyDown:=MyOn;
end;

procedure TForm1.MyOn(Sender:TObject);
begin
  Caption:="Key downed :)";
end;

end.


Только чем тебе не угодило стандартное событияе OnKeyDown, зачем еще сообщение ловить?


 
Ega23 ©   (2004-07-16 10:13) [4]

Брось на форму TApplicationEvents, в нём в OnMessage и пиши
if (msg.hwnd=Edit1.Handle) and (msg.Message=WM_KeyDown) then ....


 
Гаврила ©   (2004-07-16 11:43) [5]


> TUser ©   (16.07.04 04:19) [1]
> Надо написать своего наследника.


В общем случае писать наследника необязательно.
Можно просто присвоить в качестве оконной процедуры указатель на свой обработчик



Страницы: 1 вся ветка

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
14-1089890356
ruslan
2004-07-15 15:19
2004.08.01
krasiviy tekst


1-1090013736
НовичОк
2004-07-17 01:35
2004.08.01
Как сделать так чтобы прога выглядела по XP шному?


3-1089120573
Philosoph
2004-07-06 17:29
2004.08.01
Autoincrement поле в Paradox


14-1089692960
Def
2004-07-13 08:29
2004.08.01
Память и сворачивание приложения


14-1089651784
pasha_golub (another place)
2004-07-12 21:03
2004.08.01
Будьте бдительны