Ver Mensaje Individual
  #4  
Antiguo 08-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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
    { Private declarations }
    procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP;
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
  end;
procedure Register;
implementation
uses
  Dialogs;
procedure Register;
begin
  RegisterComponents('NoSirve', [teditTAB]);
end;
{ teditTAB }
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita