Ver Mensaje Individual
  #3  
Antiguo 28-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
oscarac,

Cita:
Empezado por oscarac
...puedo salir con Tab y el control pasa al siguiente Edit...si presiono Shift + Tab el control va al Edit anterior...quisiera saber si es que el control va al siguiente Edit o al anterior Edit...¿Hay una forma de saberlo?...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
  private
    { Private declarations }
    procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Detecta si se presiono la(s) tecla(s) Tab ó Shift + Tab hacia ó desde un Control TEdit
procedure TForm1.CMDialogKey(var Message: TCMDialogKey);
var
   State : TKeyboardState;

begin

   inherited;

   if (Screen.ActiveControl is TEdit) then
   begin

      GetKeyboardState(State);

      if ((State[VK_Shift] and 128) <> 0) and (Message.CharCode = VK_Tab) then
         ShowMessage('VK_Shift + VK_Tab ha sido presionada');

      if ((State[VK_Shift] and 128) = 0) and (Message.CharCode = VK_Tab) then
         ShowMessage('VK_Tab ha sido presionada');

   end;

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Profesional x32, detecta si se presiono la(s) tecla(s) Tab ó Shift + Tab hacia ó desde un Control TEdit, ignorando dicho evento en el resto de los controles del formulario.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 28-09-2014 a las 23:29:36.
Responder Con Cita