[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