Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Porque se perderá el Enfoque al Limpiar Edit???? (https://www.clubdelphi.com/foros/showthread.php?t=16271)

AGAG4 22-11-2004 16:49:40

Porque se perderá el Enfoque al Limpiar Edit????
 
Porque se perderá el Enfoque al Limpiar Edit????

Por ejemplo:
Hago la prueba con un Edit y al presionar F10 mando a llamar la siguiente instruccion para limpiar el Edit:

Código Delphi [-]
LimpiaCampo(ActiveControl)
 
{Cuerpo del Procedimiento}
procedure LimpiaCampo(Control:tWinControl);
begin
  if Control is TEdit then
    tEdit(Control).clear
  else if Control is TDBEdit then
    tdbEdit(Control).Clear
  else if Control is TMaskEdit then
    tMaskEdit(Control).Clear
end;

Al Limpiarme el Edit el enfoque se pierde y tengo que presionar 2 veces cualquier tecla para que vuelva tener el enfoque, hice la prueba sin el procedimiento solo mando llamar Edit1.clear y me sucede lo mismo.

Agradezco cualquier sugerencia.

roman 22-11-2004 17:00:55

¿Tienes un menú en tu formulario?

De ser así no es buena idea utilizar teclas como F10 ya que la acción de ésta está "reservada" para el sistema y lo que hace es activar la barra de menús. De ahí que se pierda el foco de cualquier control.

// Saludos

AGAG4 22-11-2004 18:27:00

No tengo un Menu
 
No tengo un Menu en el Formulario, lo que tengo es un Formulario Principal del cual se ejecuta primero, entro al Menu de este mismo y entro a otro Formulario que no tiene Menu y es en este en donde hago llamadas al F10, creo que ese es el motivo.

No habrá otra solucion para regresar el enfoque al Edit?

roman 22-11-2004 18:35:57

Simplemente anula la tecla. Suponiendo que detectas el F10 desde el KeyDown del formulario:

Código Delphi [-]
procedure Form2OnKeyDown(...);
begin
  if Key = VK_F10 then
  begin
    Edit1.Clear;
    Key := 10;
  end;
end;

Pero mi recomendación es que dejes de utilizar este tipo de asignación de teclas (no es la primera vez que haces algo así ;) ) Una de las ventajas de este tipo de sistemas es que el usuario ve un estándar en todas las aplicaciones. Hay usuarios que prefieren usar el teclado al mouse y no les gustará que las teclas no hagan lo que ellos esperan que hagan.

// Saludos

AGAG4 22-11-2004 18:54:39

Gracias Roman
 
Asi es Roman, lo que pasa es que asi me lo estan pidiendo usar las mismas teclas que estan acostumbrados utilizar y si hay algun inconveniente se los hago ver.

Y tiene razon no es la primer vez que hago este tipo de preguntas, pero a veces desconozco porque reacciona Delphi de alguna forma.


Gracias de Antemano
Que tenga buen día.


La franja horaria es GMT +2. Ahora son las 03:53:28.

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