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
procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
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.