Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-07

ruidito

20 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paola Bruccoleri

Hola a todos..

en todos los forms que hago, establezco la propiedad keypreview en true,
y en el evento keyup hago esto:
procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key =  VK_ESCAPE) then
     close;
end;

para salir del form con la tecla escape (adem�s de que se pueda salir con el bot�n cerrar o salir, etc).

Resulta que en algunos forms, al apretar escape, hace un ruidito, pero en otros no.
No tengo idea cu�l propiedad o qu� es lo que le pone ese ruidito que es medio molestoso.. tipo "clin"

es un detalle bien bobo.. pero para mover un poco la lista en estos d�as :) chauuuuuuuuuuuu

Reply by email

José Mejuto
to Paola Bruccoleri

Hello Paola,

Wednesday, July 7, 2010, 12:10:09 AM, you wrote:

PB> en todos los forms que hago, establezco la propiedad keypreview en true, PB> y en el evento keyup hago esto:
PB> procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word; PB> Shift: TShiftState);
PB> begin
PB> if (key = VK_ESCAPE) then
PB> close;
PB> end;
PB> para salir del form con la tecla escape (adem�s de que se pueda salir PB> con el bot�n cerrar o salir, etc).
PB> Resulta que en algunos forms, al apretar escape, hace un ruidito, pero PB> en otros no.
PB> No tengo idea cu�l propiedad o qu� es lo que le pone ese ruidito que es PB> medio molestoso.. tipo "clin"
PB> es un detalle bien bobo.. pero para mover un poco la lista en estos d�as :) PB> chauuuuuuuuuuuu

El "clin" ese creo que te pasa cuando el foco lo tiene un TEdit. No hay mucho que puedas hacer ahora mismo ya que el reasignado de teclas creo que no funciona en ninguna plataforma, de todos modos puedes probar a poner:

procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word;
   Shift: TShiftState);
begin
   if (key =  VK_ESCAPE) then begin
      Key := 0;
      close;
   end;
end;
Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

Hola Jos�..

Show quoted text 15 lines
El "clin" ese creo que te pasa cuando el foco lo tiene un TEdit. No hay mucho que puedas hacer ahora mismo ya que el reasignado de teclas creo que no funciona en ninguna plataforma, de todos modos puedes probar a poner: procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key = VK_ESCAPE) then begin Key := 0; close; end; end;

si, ese clin lo hace cuando pas�s por algunos controles, como los combos, rx, etc... otros no.
No me funcion� ese tip que me distes.. lo sigue haciendo igual..

As� que esto por ej de pasar con enter los controles no funciona en linux? Es indispensable para sistemas de gesti�n, donde se factura sin parar!!! chauuuuuuuuuu

Reply by email

José Antonio Cuello
to Paola Bruccoleri

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

El mi�, 07-07-2010 a las 12:31 -0300, Paola Bruccoleri escribi�:

Show quoted text 30 lines
Hola Jos�.. > El "clin" ese creo que te pasa cuando el foco lo tiene un TEdit. No > hay mucho que puedas hacer ahora mismo ya que el reasignado de teclas > creo que no funciona en ninguna plataforma, de todos modos puedes > probar a poner: > > procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word; > Shift: TShiftState); > begin > if (key = VK_ESCAPE) then begin > Key := 0; > close; > end; > end; > > si, ese clin lo hace cuando pas�s por algunos controles, como los combos, rx, etc... otros no. No me funcion� ese tip que me distes.. lo sigue haciendo igual.. As� que esto por ej de pasar con enter los controles no funciona en linux? Es indispensable para sistemas de gesti�n, donde se factura sin parar!!! chauuuuuuuuuu _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

________________________________________________________________________

ARTEX TRADING S.A.
Jos� Antonio Cuello Principal

Reply by email

Maxi
to José Antonio Cuello

El 7 de julio de 2010 12:42, Jos� Antonio Cuello <josea en artextrading.com>escribi�:

Show quoted text 87 lines
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 El mi�, 07-07-2010 a las 12:31 -0300, Paola Bruccoleri escribi�: > Hola Jos�.. > > El "clin" ese creo que te pasa cuando el foco lo tiene un TEdit. No > > hay mucho que puedas hacer ahora mismo ya que el reasignado de teclas > > creo que no funciona en ninguna plataforma, de todos modos puedes > > probar a poner: > > > > procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word; > > Shift: TShiftState); > > begin > > if (key = VK_ESCAPE) then begin > > Key := 0; > > close; > > end; > > end; > > > > > si, ese clin lo hace cuando pas�s por algunos controles, como los > combos, rx, etc... otros no. > No me funcion� ese tip que me distes.. lo sigue haciendo igual.. > > As� que esto por ej de pasar con enter los controles no funciona en linux? > Es indispensable para sistemas de gesti�n, donde se factura sin parar!!! > chauuuuuuuuuu > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es ________________________________________________________________________ ARTEX TRADING S.A. Jos� Antonio Cuello Principal _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Se soluciona asignadno #0 o 0 a la key segun que evento llames, para que el evento heredado no siga su curso.

Twitter: @nenunocomar Maximiliano Duarte Linux User #495070 Ubuntu User #28504 http://miexperiencialinux.blogspot.com/ El que pregunta aprende, y el que contesta aprende a responder. ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100707/bf947104/attachment-0001.html>

Reply by email

Paola Bruccoleri
to José Antonio Cuello: Hola, creo que si lo tratas en el keypress en vez del key down puedes anular la…

Jos� Antonio Cuello escribi�:

Show quoted text 40 lines
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

Reply by email

José Antonio Cuello
to Paola Bruccoleri

Revisa la herencia del componente con el foco ... en este caso si el componente hereda de un TCustomButton no hace nada.

Te lo envi� como una muestra y sac�ndolo sin mirar de un proyecto con la idea de que vieras el funcionamiento del enter. para el caso del esc seguramente no tienes que mirar el ActiveControl simplemente si key = #27 cerrar el formulario.

El mi�, 07-07-2010 a las 14:22 -0300, Paola Bruccoleri escribi�:

if Screen.ActiveControl.InheritsFrom(TCustomButton) then Exit;

________________________________________________________________________

ARTEX TRADING S.A.
Jos� Antonio Cuello Principal

Reply by email

Paola Bruccoleri
to José Antonio Cuello

Jos� Antonio Cuello escribi�:

Show quoted text 10 lines
Revisa la herencia del componente con el foco ... en este caso si el componente hereda de un TCustomButton no hace nada. Te lo envi� como una muestra y sac�ndolo sin mirar de un proyecto con la idea de que vieras el funcionamiento del enter. para el caso del esc seguramente no tienes que mirar el ActiveControl simplemente si key = #27 cerrar el formulario. El mi�, 07-07-2010 a las 14:22 -0300, Paola Bruccoleri escribi�:

si, eso es lo que estoy tratando de hacer... pero no lo logro!! Yo ten�a otra funci�n de pasaje con enter los controles, y controlaba en el evento onkeyup el ESC.
sigo haciendo pruebas!!
muchas gracias
chauuuuuuuuuuuu

Reply by email

Paola Bruccoleri
to José Mejuto: PB> en todos los forms que hago, establezco la propiedad keypreview en true, PB> y en el…

Jos� Mejuto escribi�:

Show quoted text 23 lines
Hello Paola, Wednesday, July 7, 2010, 12:10:09 AM, you wrote: PB> en todos los forms que hago, establezco la propiedad keypreview en true, PB> y en el evento keyup hago esto: PB> procedure TfrmNumeradores.FormKeyUp(Sender: TObject; var Key: Word; PB> Shift: TShiftState); PB> begin PB> if (key = VK_ESCAPE) then PB> close; PB> end; PB> para salir del form con la tecla escape (adem�s de que se pueda salir PB> con el bot�n cerrar o salir, etc). PB> Resulta que en algunos forms, al apretar escape, hace un ruidito, pero PB> en otros no. PB> No tengo idea cu�l propiedad o qu� es lo que le pone ese ruidito que es PB> medio molestoso.. tipo "clin" PB> es un detalle bien bobo.. pero para mover un poco la lista en estos d�as :) PB> chauuuuuuuuuuuu El "clin" ese creo que te pasa cuando el foco lo tiene un TEdit.

Hola Jos�...
bueno.. he hecho algunos cambios y al final creo que me quedo con la funci�n de reasignado de teclas que yo usaba.
El asunto del famoso CLIN es como t� dices... se escucha cuando el foco llega a un tedit ..
La cosa es que es muy molestoso ese clin cuando se est�n ingresando datos. Lo que yo quiero es anular ese ruido cuando llega el foco.. Imaginate que me molesta a mi cuando pruebo el programa, me imagino si estuviera en producci�n!!! me matan :)
Muchas gracias a todos...
chauuuuuuuuuuu

Reply by email

José Mejuto
to Paola Bruccoleri

Hello Paola,

Thursday, July 8, 2010, 3:20:00 PM, you wrote:

PB> bueno.. he hecho algunos cambios y al final creo que me quedo con la PB> funci�n de reasignado de teclas que yo usaba. PB> El asunto del famoso CLIN es como t� dices... se escucha cuando el foco PB> llega a un tedit ..
PB> La cosa es que es muy molestoso ese clin cuando se est�n ingresando PB> datos. Lo que yo quiero es anular ese ruido cuando llega el foco.. PB> Imaginate que me molesta a mi cuando pruebo el programa, me imagino si PB> estuviera en producci�n!!! me matan :)
PB> Muchas gracias a todos...

Pon lo del cambio de key=#0 en KeyPress, si as� no te funciona y es s�lo para Windows creo que podr� armarte un peque�o "message handler" para que se corrija el problema al menos mientras no se solucione de un modo m�s elegante. Para Linux o Mac ser�a bastante m�s complejo, auqnue creo que ahi no hay "clin" :)

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

Jos� Mejuto escribi�:

Show quoted text 9 lines
Hello Paola, Pon lo del cambio de key=#0 en KeyPress, si as� no te funciona y es s�lo para Windows creo que podr� armarte un peque�o "message handler" para que se corrija el problema al menos mientras no se solucione de un modo m�s elegante. Para Linux o Mac ser�a bastante m�s complejo, auqnue creo que ahi no hay "clin" :)

Hola Jos�...
Te explico que es lo que tengo ahora...
En un .pas tengo varias funciones, donde esta definida esta que es la que uso como sustituto del Enter por Tab, y que la ejecuto desde el evento onkeypress de cada formulario: (lo hago as� para ahorrar c�digo en cada form)..

type
  TMiClase = class(TWinControl);
procedure EnterTabs(Key: char; Form: TForm);
begin
     if (key =  #13) and not(Form.ActiveControl is TCustomButton) then
        begin
            TMiClase(Form).SelectNext(Form.ActiveControl, True, True);
            Key := #0;
        end;
     if (key =  #27) then
        begin
          Key := #0;
          Form.Close;
        end;
 end;
procedure TfrmAgregar.FormKeyPress(Sender: TObject; var Key: char);
begin
  EnterTabs (Key, self);
end;
Ahora le agregu� lo del ESC.(el segundo if). PERO, de todas maneras, me
sigue jorobando el CLIN.... por m�s key:= #0 que pongo.

Y hay otra cosa rara... en otro form tengo 5 TDBEdits. Cuando presiono ESC, no se dispara el evento keypress por m�s que ya verifiqu� que tengo la propiedad keypreview=true.
Tengo otro form similar donde uso los mismos controles y pasa lo mismo.

Cuando termine esta aplicaci�n (alg�n d�a :) ) va a funcionar en linux!! pero para desarrollarla, estoy usando windows.
No he probado esta aplicaci�n corriendo el linux... quiz�s este fin de semana lo haga si dispongo de algo de tiempo.. as� que no tengo idea si ah� suena el clin o puedo pasar los controles con enter. Si alguien ya lo hace, puede contarnos c�mo!!
La otra aplicaci�n que prob� de hacer funcionar en linux es dise�ada con una interfaz donde no se usa el teclado (es solo rat�n). Muchas gracias
chauuuuuuuuuuuuu

Reply by email

José Mejuto
to Paola Bruccoleri

Hello Paola,

Friday, July 9, 2010, 1:50:05 AM, you wrote:

PB> type
PB>   TMiClase = class(TWinControl);
PB> procedure EnterTabs(Key: char; Form: TForm);
PB> begin
PB>      if (key =  #13) and not(Form.ActiveControl is TCustomButton) then
PB>         begin
PB>             TMiClase(Form).SelectNext(Form.ActiveControl, True, True);
PB>             Key := #0;
PB>         end;
PB>      if (key =  #27) then
PB>         begin
PB>           Key := #0;
PB>           Form.Close;
PB>         end;
PB>  end;
PB> Ahora le agregu� lo del ESC.(el segundo if). PERO, de todas maneras, me
PB> sigue jorobando el CLIN.... por m�s key:= #0 que pongo.

Es normal que no te funcione :) La man�a de no calificar la entrada/salida de variables. Prueba poniendo:

procedure EnterTabs(var Key: char; const Form: TForm);

De todos modos, y puestos a "mejorar" o hacerlo un poco m�s "elegante" :) Te sugiero que crees este c�digo en un .frm:

type
TFormEnterESC=class(TForm)
    procedure FormKeyPress(Sender: TObject; var Key: char);
end;
procedure TFormEnterESC.FormKeyPress(Sender: TObject; var Key: char);
begin
  if (key =  #13) and not(ActiveControl is TCustomButton) then
  begin
    SelectNext(ActiveControl, True, True);
    Key := #0;
  end
  else
  if (key =  #27) then
  begin
    Key := #0;
    Close;
  end;
end;

Despu�s en cada form que quieras que tenga ese funcionamiento en el KeyPress simpemente heredas desde TFormEnterESC. Vamos que en el resto de forms donde pone:

uses
  system, classes...;

type MiFormdeFacturacion=class(TForm)
[...]

Lo cambias por:

uses
  system, classes...,uformenteresc;

type MiFormdeFacturacion=class(TFormEnterESC)
[...]

Y autom�ticamente se hereda ese comportamiento en el keypress, as� como el keypreview=true, los colores, etc que quieras por defecto en esos forms.

PB> Y hay otra cosa rara... en otro form tengo 5 TDBEdits. Cuando presiono PB> ESC, no se dispara el evento keypress por m�s que ya verifiqu� que tengo PB> la propiedad keypreview=true.
PB> Tengo otro form similar donde uso los mismos controles y pasa lo mismo.

Hmmmm... eso si que no tengo ni idea... probar�.

PB> Cuando termine esta aplicaci�n (alg�n d�a :) ) va a funcionar en linux!! PB> pero para desarrollarla, estoy usando windows.

Lo dec�a por si era un bug de la LCL, pero por ahora parece que no :)

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

Jos� Mejuto escribi�:

Show quoted text 6 lines
Es normal que no te funcione :) La man�a de no calificar la entrada/salida de variables. Prueba poniendo: procedure EnterTabs(var Key: char; const Form: TForm);

Hola Jos�..
prob� ese cambio y ahora desapareci� el ruidito!!! claro.. Key deb�a pasar por referencia!!!

De todos modos, y puestos a "mejorar" o hacerlo un poco m�s "elegante" :) Te sugiero que crees este c�digo en un .frm:

ok... voy a mejorar el c�digo... tienes raz�n!!! es que debo hacer m�s uso de la herencia!!!

Show quoted text 7 lines
PB> Y hay otra cosa rara... en otro form tengo 5 TDBEdits. Cuando presiono PB> ESC, no se dispara el evento keypress por m�s que ya verifiqu� que tengo PB> la propiedad keypreview=true. PB> Tengo otro form similar donde uso los mismos controles y pasa lo mismo. Hmmmm... eso si que no tengo ni idea... probar�.

has podido probar esto? si en el tdbedit presiono enter si se dispara el evento, pero cuando presiono ESC no.

muchas gracias por todo!!!
chauuuuuuuuuuu

Reply by email

José Mejuto
to Paola Bruccoleri

Hello Paola,

you wrote 5 lines
> PB> Y hay otra cosa rara... en otro form tengo 5 TDBEdits. Cuando presiono > PB> ESC, no se dispara el evento keypress por m�s que ya verifiqu� que tengo > PB> la propiedad keypreview=true. > PB> Tengo otro form similar donde uso los mismos controles y pasa lo mismo. > Hmmmm... eso si que no tengo ni idea... probar�.

PB> has podido probar esto? si en el tdbedit presiono enter si se dispara el PB> evento, pero cuando presiono ESC no.

Si, efectivamente el ESC no pasa al FormKeyPress pero a�n no he podido mirar el porqu� ya que me he ido de fin de semana de "vacaciones" :) Y hoy no creo que pueda mirarlo, y menos si Espa�a gana el mundial claro :)

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

Jos� Mejuto escribi�:

Show quoted text 19 lines
Hello Paola, Saturday, July 10, 2010, 11:50:43 PM, you wrote: >> PB> Y hay otra cosa rara... en otro form tengo 5 TDBEdits. Cuando presiono >> PB> ESC, no se dispara el evento keypress por m�s que ya verifiqu� que tengo >> PB> la propiedad keypreview=true. >> PB> Tengo otro form similar donde uso los mismos controles y pasa lo mismo. >> Hmmmm... eso si que no tengo ni idea... probar�. >> PB> has podido probar esto? si en el tdbedit presiono enter si se dispara el PB> evento, pero cuando presiono ESC no. Si, efectivamente el ESC no pasa al FormKeyPress pero a�n no he podido mirar el porqu� ya que me he ido de fin de semana de "vacaciones" :) Y hoy no creo que pueda mirarlo, y menos si Espa�a gana el mundial claro :)

ok... no hay problema!!! si sos Espa�ol.... FELICITACIONES y sal� a festejar, olvidate de lazarus!!!!
byeeeeeeeeeeeeeeee

Reply by email

José Mejuto
to Paola Bruccoleri

Hello Paola,

you wrote
> Si, efectivamente el ESC no pasa al FormKeyPress pero a�n no he podido > mirar el porqu� ya que me he ido de fin de semana de "vacaciones" :) Y > hoy no creo que pueda mirarlo, y menos si Espa�a gana el mundial claro

PB> ok... no hay problema!!! si sos Espa�ol.... FELICITACIONES y sal� a PB> festejar, olvidate de lazarus!!!!
PB> byeeeeeeeeeeeeeeee

Lo soy, lo soy... Gracias... Ma�ana le doy un ojo al c�digo, ahora a celebrarlo un ratito! Deber�an poner las finales a s�bado, por que ma�ana hay que trabajar :(

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

Jos� Mejuto escribi�:

Show quoted text 17 lines
Hello Paola, Monday, July 12, 2010, 12:09:46 AM, you wrote: >> Si, efectivamente el ESC no pasa al FormKeyPress pero a�n no he podido >> mirar el porqu� ya que me he ido de fin de semana de "vacaciones" :) Y >> hoy no creo que pueda mirarlo, y menos si Espa�a gana el mundial claro >> PB> ok... no hay problema!!! si sos Espa�ol.... FELICITACIONES y sal� a PB> festejar, olvidate de lazarus!!!! PB> byeeeeeeeeeeeeeeee Lo soy, lo soy... Gracias... Ma�ana le doy un ojo al c�digo, ahora a celebrarlo un ratito! Deber�an poner las finales a s�bado, por que ma�ana hay que trabajar :(

ok..!!!! tambi�n me olvid� de felicitar a otros espa�oles que s� que tb est�n aqu�, como Jos� Cuello...!!!! (no s� de otros, perd�n!!!) A FESTEJAR!!!

Reply by email

José Antonio Cuello
to Paola Bruccoleri

El dom, 11-07-2010 a las 19:36 -0300, Paola Bruccoleri escribi�:

ok..!!!! tambi�n me olvid� de felicitar a otros espa�oles que s� que tb est�n aqu�, como Jos� Cuello...!!!! (no s� de otros, perd�n!!!) A FESTEJAR!!!

MUCHAS GRACIAS ... Un saludo.

________________________________________________________________________

ARTEX TRADING S.A.
Jos� Antonio Cuello Principal

Reply by email

José Mejuto
to Paola Bruccoleri: Jos� Mejuto escribi�: Hola Jos�.. prob� ese cambio y ahora desapareci� el…

Hello Paola,

you wrote
> Hmmmm... eso si que no tengo ni idea... probar�.

PB> has podido probar esto? si en el tdbedit presiono enter si se dispara el PB> evento, pero cuando presiono ESC no.

Lo que sucede es que TDBEdit tiene un control "especial" de la tecla "ESC" para cancelar operaciones sobre el dataset. Este control especial lo hace en el KeyDown, de modo que si pulsas "ESC" hace sus cosas y cambia la tecla "ESC" por "VK_INVALIDKEY" para que no se siga procesando. Por lo tanto para que tu sistema funcione tendr�s que usar el OnKeyDown en vez de OnKeyPress. He probado este c�digo y funciona:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
     if (Key =  13) and (Shift = 0) and not(ActiveControl is TCustomButton) then
        begin
            SelectNext(ActiveControl, True, True);
            Key := 0; // VK_INVALIDKEY
        end;
     if (Key =  27) then // VK_ESC ???
        begin
          Key := 0; // VK_INVALIDKEY
          Close;
        end;
end;
Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

Jos� Mejuto escribi�:

Show quoted text 32 lines
Hello Paola, Saturday, July 10, 2010, 11:50:43 PM, you wrote: >> Hmmmm... eso si que no tengo ni idea... probar�. >> PB> has podido probar esto? si en el tdbedit presiono enter si se dispara el PB> evento, pero cuando presiono ESC no. Lo que sucede es que TDBEdit tiene un control "especial" de la tecla "ESC" para cancelar operaciones sobre el dataset. Este control especial lo hace en el KeyDown, de modo que si pulsas "ESC" hace sus cosas y cambia la tecla "ESC" por "VK_INVALIDKEY" para que no se siga procesando. Por lo tanto para que tu sistema funcione tendr�s que usar el OnKeyDown en vez de OnKeyPress. He probado este c�digo y funciona: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = 13) and (Shift = 0) and not(ActiveControl is TCustomButton) then begin SelectNext(ActiveControl, True, True); Key := 0; // VK_INVALIDKEY end; if (Key = 27) then // VK_ESC ??? begin Key := 0; // VK_INVALIDKEY Close; end; end;

Hola Jos�..
muchas gracias!!! espero te hayas recuperado de los festejos...!!!

Lo que hab�a hecho es procesar el ENTER en el onkeypress y el ESC en el onkeydown, pero quiz�s as� quede m�s prolijo!! chauuuuuuuuuuuuuu

Reply by email