evento keypress
hola amigos, como podria hacer que al pulsar el intro dentro de un edit1 se me
activara el codigo asociado a un boton: procedure TfrmBProductos.Edit1KeyPress(Sender: TObject; var Key: Char); begin if (key=#13) then begin .... /* Aqui es donde meteria el codigo*/ /* he probado con TfrmBProducto.BitBtn1Click; pero me dice uqe me faltan parametros*/ end; end; Gracias de antemano. |
Sospecho que te falta el parámetro Sender. Podría funcionar con algo como BitBtn1Click(BitBtn1) pero no puedo asegurarte nada, aquie no tengo Delphi :(
|
Como dice Gydba, te falta el parámetro Sender
TfrmBProducto.BitBtn1Click(Sender); No obstante, soy de la opinión que no debe de hacerse este tipo de programación. Si necesitas reutilizar código que haces en un botón, pon ese código en un procedure o function y llamalo/a desde el botón y desde donde quieras |
Además, cuando el compilador te dice que faltan parámetros puedes irte a la definición del procedimiento para ver qué parámetros requiere y buscar en la ayuda de Delphi acerca de su uso.
// Saludos |
a mi me funciona
nombreboton.click.
tan simple como esto. :D |
problema
Tengo este codigo:
procedure TfrmAlbaranes.txtDescuentoKeyPress(Sender: TObject; var Key: Char); begin if (key=#13) then frmAlbaranes.SpeedButton1.Click; end; Y en el evento Onclik del txtDescuento este procedimiento. pero no me funciona por que sera? |
voy mas alla
si le añado esta linea al codigo del post anterior:
procedure TfrmAlbaranes.txtDescuentoKeyPress(Sender: TObject; var Key: Char); begin MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0); if (key=#13) then begin frmAlbaranes.SpeedButton1.Click; codigo.MostrarError('He mostrado una itro'); end end; Me captura todas las pulsaciones menos la del INTRO. A que sera debido eso? |
Hola!
Es sólo una sugerencia, porque no pones el código en el Evento FormKeyPress del formulario: Código:
if Key = #13 then De todas maneras yo lo realizo de la manera que te comentaba arriba y me funciona perfectamente. Espero que te sirva. Saludos! |
sigue sin funcionarme
Hola Nuria he hecho lo que tu me has dicho:
procedure TfrmAlbaranes.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then if txtDescuento.Focused then frmAlbaranes.SpeedButton1.Click; end; Tengo en el evento OnKeyprees del formulario y del txtDescuento y no me funciona me captura todas las teclas menos la del intro y no se por que puede ser! Ademas lo habia puesto en el keyprees del txtDescuento por costumbre ya que yo vengo del VB. SALUDOS!! |
pongo esto y ahora no me captura el evento
procedure TfrmAlbaranes.FormKeyPress(Sender: TObject; var Key: Char);
begin if Key = #13 then if txtDescuento.Focused then begin MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0); frmAlbaranes.SpeedButton1.Click; end; end; Ademas me he asegurado que la propiedad KeyPreview del formulario esta a true. |
es el intro !!
Sin embargo si pongo esto:
procedure TfrmAlbaranes.FormKeyPress(Sender: TObject; var Key: Char); begin MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0); if Key = #13 then if txtDescuento.Focused then frmAlbaranes.SpeedButton1.Click end; Me captura todos las teclas MENOS EL INTRO:confused: :confused: |
Cuando pulsas intro, que valor tiene Key?
|
No Me Sale Nada!!
Es que no sale ni siquiera ningun valor, se lo salta, incluso si pulso la tecla Backspace me sale algo parecido a un cuadrado pero si pulso intro NO ME SALE NADA!!
|
Acabo de probar lo siguiente.
Propiedad del formulario KeyPreview a true y Código:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); |
tio esto es de expediente x
Pues yo tengo esto:
procedure TfrmAlbaranes.FormKeyPress(Sender: TObject; var Key: Char); begin MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0); ShowMessage('lolo'); end; Lo he puesto para probarlo tal y como tu me dices, la propiedad Keypreview del formulario frmAlbaranes a TRUE y si pulso cualquier tecla me funciona al pelo: ejemplo: pulso 2 y me sale : 2 has been pressed y despues 'lolo'. Pero si pulso el intro se lo pasa por los cojones, puede ser que sea alguna propiedad que he tocado por ahi?. aunque no creo. voy a reiniciar!!. P.D. Uso windows 2000 aunque creo que eso tendra que ver mas bien poco.:confused: :confused: :confused: |
Lo he vuelto a probar :
Con la propiedad del form KeyPreview = True. Código:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); |
Puede ser por estar en un portatil.-.
vamos a ver, he reiniciado y esto no chuta vamos a ver:
Me hace pensar una cosa maquiavelica, tengo un portatil....Osea que estoy en un portatil mi pregunta es la siguiente: ¿Tendra algo que ver?, por que claro todas las demas teclas me las coge, a ver si es un codigo raro. Por que desde luego tengo que probarlo en un fijo. No se que pensar claro!! |
Bingooooooooooooooo
Lo sabia, es por la puta mierda de portatil, que puta rabia, si pulo MAY+INTRO ese es el caracter #13, que puta rabia de verdad!! Con razon ya me podia volver loco.
Para que lo sepais mi portatil es un ADL SmartBook. ME cago en la puta.... QUE GRANGRENA: |
No sé si tiene algo que ver que estés trabajando en el portatil. Lo que si te digo es que cuando pulso intro y muestro el valor de Key, no tengo ningún valor en el mensaje que muestro por pantalla. Pero me detecta que es #13 (tecla enter).
|
hola a mi me pasa lo mismo, si el componente es tedit solo me pasa al siguiente si presiono shit+Enter, tengo delphi 6
y tengo un teclado Millenniun (uno negro con funciones especiales), ¡Será el teclado? |
La franja horaria es GMT +2. Ahora son las 05:53:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi