[Lazarus-es] ruidito
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Mie Jul 7 19:22:09 CEST 2010
José Antonio Cuello escribió:
> Hola, creo que si lo tratas en el keypress en vez del key down puedes
> anular la pulsación con key := #0 ya que en el keydown la tecla ya ha
> sido pulsada y se lanzan los eventos de teclado igualmente.
>
> Bueno no se si me he explicado correctamente, pero creo que para que
> haya un keydown debe haber keypress pero no al reves.
>
> Yo controlo la pulsación del enter y el escape así y no me da problema.
>
> procedure TBaseForm.FormKeyPress(Sender: TObject; var Key: char);
> begin
> if assigned( Screen.ActiveControl ) then
> begin
> if (Key = #13) then
> begin
> if Screen.ActiveControl.InheritsFrom(TCustomButton) then Exit;
>
> if Screen.ActiveControl.InheritsFrom(TWinControl) and not
> Screen.ActiveControl.InheritsFrom(TCustomMemo) then
> begin
> Key := #0;
> repeat
> SelectNext(Screen.ActiveControl, True, True);
> until (Screen.ActiveControl = nil) or
> (not (Screen.ActiveControl.InheritsFrom(TCustomPage) or
> Screen.ActiveControl.InheritsFrom(TCustomNotebook)));
> end;
> end;
> end
> else
> if (Key = #13) then
> begin
> Key := #0;
> SelectNext(nil, True, True);
> end;
> end;
>
> Espero que te sirva
>
>
Hola José..
estoy implementando tu solución, y me pasa esto.. algunos forms se
cierran apretando ESCAPE y otros no.. por ejemplo si tengo un rxdateedit
o si solo tengo dbedits...
ahora estoy revisando mejor, y creo que esto no funciona cuando en el
onshow del form hago un setfocus en un control; depuro el programa y
cuando apreto ESC no detecta ese evento..
chauuuuuuuuuuuu
More information about the Lazarus-es
mailing list