Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 05-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
El problema es que windows no llega a enviar la tecla TAB al edit, ya se encarga el de procesarla. Para prevenir esto, windows primero manda el mensaje WM_GETDLGCODE al control preguntando entre otras cosas si quiere que sea windows el que se encargue de la tecla o prefiere ser el.

Pues bien, seguramente habra alguna forma mas sencilla de hacer esto, y aqui hay expertos suficientes para corregirme , pero esta solucion me parece interesante. Vamos a hacer que todos los edit del formulario acepten la tecla TAB.

Código Delphi [-]
type
  // Aqui esta la clave, cambiamos la forma de procesar este mensaje
  // Ojo, tiene que estar antes de la definicion de TForm1
  TEdit = class(StdCtrls.TEdit)
  private
    procedure WMGETDLGCODE(var Msg: TMessage); message WM_GETDLGCODE;
  end;

  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Aqui procesamos el mensaje
procedure TEdit.WMGETDLGCODE(var Msg: TMessage);
begin
  inherited;
  Msg.Result:= Msg.Result or DLGC_WANTTAB;
end;

// Esto es solo una prueba para comprobar que funciona bien
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_TAB then ShowMessage('VK_TAB');
end;

Última edición por seoane fecha: 05-06-2006 a las 13:31:07.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresión Codigos Escape Zebra LP 2844 comba Impresión 2 08-02-2006 22:46:47
Codigos Escape Impresora Sansumg serhasae Varios 3 05-09-2005 10:40:17
Codigos de escape con Zreport Sick boy Impresión 0 22-07-2005 12:27:13
Códigos de Escape Laser CANON LBP-2000 jmdd Impresión 1 11-12-2003 00:33:52
Codigos de escape jsanchez Impresión 1 17-05-2003 13:54:00


La franja horaria es GMT +2. Ahora son las 16:25:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi