Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Bip en un Edit (https://www.clubdelphi.com/foros/showthread.php?t=11173)

aram2r 08-06-2004 08:42:16

Bip en un Edit
 
Hola amigos tengo un problema q es algo molesto, tengo un Edit en un form sin bordes...y lo muestro con un showmodal de modo q parece q solo aparece un Edit ya q el form no se ve....y en el evento OnKeyPress del Edit le he pesto q si pulsas Escape o Intro cierre el form.....pero cada vez q hago esto no se xq hace un Beep...y cuando lo escuchas unas cuantas veces llega a ser molesto...... Xq se produce este Beep? y como puedo evitarlo? El codigo es el siguiente:

Código Delphi [-]
procedure TFormBuscar.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then 
    Close
  else if Key=#27 then
    Close;
end;

jachguate 08-06-2004 09:35:55

El beep es normal cuando se pulsa una tecla de estas en un edit. Para evitarlo, podes asignarle #0 a Key si se trata de una de estas teclas.

La rutina, podria quedar:

Código Delphi [-]
  if Key in [#13, #27] Then
  Begin
    Close;
    Key := #0;
  end;

Hasta luego.

;)

2-D@monic 12-03-2010 06:44:12

Una pregunta sin ánimo de ofender:
para qué la instrucción Close; ?

Bueno, la pregunta es tonta.....
seguro es............

if Key in [#13, #27] Then
Begin
loquequieras;
Key := #0;
end;

BrunoBsso 12-03-2010 18:09:24

Close es para que se cierre el Form que está activo.
Es lo mismo que poner FormAlgo.Close; o Self.Close;
Porque todo lo que uses en ese Form está dentro del Form. Tomalo como una variable global al Form que está activo.

Y volviendo al tema del hilo, a mí nunca me hace ningún beep cuando presiono uno de esos caracteres no imprimibles.
Mirá vos, no sabía que pasaba eso.
Saludos!

Casimiro Notevi 12-03-2010 18:30:39

A mí me pasa en algunos clientes sí y en otros no... por lo que pensaba que era algo de la configuración del windows

roman 12-03-2010 18:45:07

Esto debe ser como responder a porqué el pollo cruzó la carretera :D

// Saludos

Casimiro Notevi 12-03-2010 18:50:13

¿Por qué cruzó el pollo la carretera?


no, no... no respondan por favor :D

roman 12-03-2010 19:18:01

Cita:

Empezado por Casimiro Notevi (Mensaje 356745)
A mí me pasa en algunos clientes sí y en otros no... por lo que pensaba que era algo de la configuración del windows

De hecho, es una configuración del sistema, aunque desconozco dónde se modifica a nivel de usuario y tampoco sé si en algunos sistemas cambia el valor por defecto.

Por código, se cambia la configuración con SystemParametersInfo:

Código Delphi [-]
// Poner el beep
SystemParametersInfo(SPI_SETBEEP, 1, nil, 0);

// Quitar el beep
SystemParametersInfo(SPI_SETBEEP, 0, nil, 0);

Ahora, también puede ser que no escuches el beep porque no haya bocinas :rolleyes:

// Saludos

Casimiro Notevi 12-03-2010 19:33:49

Ignoraba esto (como tantas cosas), me lo guardo.

jachguate 18-03-2010 23:29:11

Cita:

Empezado por 2-D@monic (Mensaje 356667)
para qué la instrucción Close; ?

Para que no quede la duda... en el contexto de la pregunta, lo que se pretendía era cerrar y evitar el beep.

Así que (Close is LoQueQueríaQuienPreguntaba) en este Contexto. :D

Saludos ;)


La franja horaria es GMT +2. Ahora son las 17:58:41.

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