Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   evento keypress (https://www.clubdelphi.com/foros/showthread.php?t=7776)

ronson 26-02-2004 11:22:39

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.

Gydba 26-02-2004 13:10:25

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 :(

__cadetill 26-02-2004 13:13:59

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

roman 26-02-2004 16:16:51

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

maruenda 26-02-2004 23:21:58

a mi me funciona
 
nombreboton.click.

tan simple como esto. :D

ronson 27-02-2004 11:02:53

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?

ronson 27-02-2004 11:15:25

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?

Nuria 27-02-2004 11:22:22

Hola!

Es sólo una sugerencia, porque no pones el código en el Evento FormKeyPress del formulario:
Código:

if Key = #13 then
    if txtDescuento.Focused then
      frmAlbaranes.SpeedButton1.Click;;

Tienes que poner la propiedad KeyPreview del form a True. Ahora que caigo Igual puede ser que no la tuvieras a true y por eso no te funcionaba.

De todas maneras yo lo realizo de la manera que te comentaba arriba y me funciona perfectamente.

Espero que te sirva.

Saludos!

ronson 27-02-2004 11:32:07

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!!

ronson 27-02-2004 11:36:44

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.

ronson 27-02-2004 11:38:53

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:

Nuria 27-02-2004 11:46:40

Cuando pulsas intro, que valor tiene Key?

ronson 27-02-2004 11:48:29

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!!

__cadetill 27-02-2004 11:52:58

Acabo de probar lo siguiente.

Propiedad del formulario KeyPreview a true y

Código:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessage('lolo');
end;

y pulsando el Intro me salta :confused:

ronson 27-02-2004 11:59:42

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:

Nuria 27-02-2004 12:02:03

Lo he vuelto a probar :

Con la propiedad del form KeyPreview = True.

Código:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  showmessage('Pulsado Tecla');
  if Key = #13 then
    showmessage('Tecla Enter');
end;

Si que me detecta que la tecla que he pulsado es un intro. No sé que te puede estar pasando :confused: .

ronson 27-02-2004 12:09:20

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!!

ronson 27-02-2004 12:13:24

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:

Nuria 27-02-2004 12:20:41

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).

tutuk 14-12-2004 06:13:08

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 09:40:01.

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