Tema: Por que
Ver Mensaje Individual
  #1  
Antiguo 25-03-2008
PabloZZZ PabloZZZ is offline
Miembro
 
Registrado: mar 2008
Posts: 20
Reputación: 0
PabloZZZ Va por buen camino
Por que OnKeyPreview del form no impacta en el de los componentes

Resulta que estoy haciendo una aplicación donde la telca '+' tiene un comportamiento especial, (incrementar un spinedit) pero no funciona correctamente.
Puse keypreview en true
con el foco en un TEdit, pulso '+'
En el FormKeyDown consulto por la tecla pulsada, si es un '+' le asigno 0 (para que no se procese en el TEdit) y sin embargo sale un + en el TEdit! a pesar que estoy diciendo Key = 0;

Qué podrá ser? hice una mini aplicación de ejemplo...
Gracias

Código Delphi [-]
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 286
  ClientWidth = 426
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  KeyPreview = True
  OldCreateOrder = False
  OnKeyDown = FormKeyDown
  PixelsPerInch = 96
  TextHeight = 13
  object Edit1: TEdit
    Left = 96
    Top = 72
    Width = 121
    Height = 21
    TabOrder = 0
    Text = 'Edit1'
  end
end

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
begin
  if (Key=107) or (Key=87) then begin // +
    Key := 0;
    end;
end;

Última edición por PabloZZZ fecha: 25-03-2008 a las 19:18:46.
Responder Con Cita