Bueno, como la unit es pequeña la pongo completa.
Este sería el .PAS correspondiente a un nuevo componente derivado de un Edit que detecta la punsación de la tecla TAB.
Código Delphi
[-]
unit editTAB;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
type
teditTAB = class(tedit)
private
procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP;
protected
public
published
end;
procedure Register;
implementation
uses
Dialogs;
procedure Register;
begin
RegisterComponents('NoSirve', [teditTAB]);
end;
procedure teditTAB.WMKeyUp(var Message: TWMKeyUp);
begin
if (Message.CharCode = VK_TAB) then begin
MessageDlg('TAB keyUp', mtInformation, [mbOK], 0)
end;
inherited;
end;
end.
Cosas que debes mirar:
(1) Si te fijas en el método register yo lo instalo en la paleta
NoSirve, cambia ésto con el nombre de la paleta donde desees que te aparezca (Standard, Additional,...)
(2) Al redefinir el mensaje se muestra un cuadro de diálogo y psteriormente se llama a inherited (para que haga el comportamiento standard, es decir pasar al siguiente control como hace el TAB siempre).
(3) Para que sea funcional, puede instalarlo en un package existente (el de usuario) o crearte un package nuevo (File/New/Other/Package) añadirle ésta Unit e instalarlo.
Un saludo.