Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Edit con boton de tipo '...' (https://www.clubdelphi.com/foros/showthread.php?t=48990)

gabrio 10-10-2007 03:00:54

Edit con boton de tipo '...'
 
Buenas noches, no se si alguien pueda ayudarme.

En un form tengo un edit y dentro de el hay un boton de tipo '...' o sea, puedes escribir algo en el edit o presionar el boton y llama a otro form para buscar el valor deseado.

Dicho boton no está visible hasta que:

Código Delphi [-]
  procedure TForm3.Edit1Enter(Sender: TObject);
   begin
     BtnBusqueda.Visible := True;
   end;

y en el evento Exit:

Código Delphi [-]
  procedure TForm3.Edit1Exit(Sender: TObject);
   begin
     BtnBusqueda.Visible := False;
   end;

El problema es que cuando el boton está visible, al tratar de darle clic, obviamente el foco sale del edit, me pone el boton invisible pero no alcanza a ejecutar el Click del botón.

La unica manera que he podido, es con un timer:

Código Delphi [-]
procedure TForm3.Timer1Timer(Sender: TObject);
begin
  BtnBusqueda.Visible := False;
  Timer1.Enabled := False;
end;

Pero los resultados no son los esperados, ya que aunque el boton ejecute su respectivo click, se queda visible hasta que termina el timer

Any Idea????

Thanks a lot!!!!

egostar 10-10-2007 03:06:07

Hola gabrio

Tu error es que estas interpretando el evento OnEnter como si fuese el Enter del teclado, ese evento se ejecuta como lo dice su nombre al entrar al objeto y no al presionar ENTER, usa mejor el evento OnClick del botón.

También estás usando el evento OnExit con el mismo error de interpretación.

Salud OS.

Edito. No leí todo el hilo, estás usando el objeto TEdit, yo usaría el evento OnChange del edit.

Héctor Randolph 10-10-2007 03:24:51

1 Archivos Adjunto(s)
Hola gabrio

Hace algún tiempo programé un componente llamado EditButton. Este componente permite precisamente colocar un pequeño botón tipo ellipsis [...] en una caja de edición.

Tiene una propiedad que se llama AutoHideButton que sirve para ocultar el botón cuando la caja de edición pierde el foco.

Puedes programar algo en el evento onButtonClick que se dispara cuando se presiona el botón, en fin, lo dejo para que lo revises y aprovecho para ver si se incorpora al conjunto de componetnes del club delphi.

Saludos

P.D. espero que no tengas problemas para instalarlo, simplemente abre le menú Component->Install component, selecciona la unidad EditButton.pas e indica el paquete en el cual se va a instalar y listo

Neftali [Germán.Estévez] 10-10-2007 10:08:21

Cita:

Empezado por gabrio (Mensaje 237332)
El problema es que cuando el boton está visible, al tratar de darle clic, obviamente el foco sale del edit, me pone el boton invisible pero no alcanza a ejecutar el Click del botón.

Una prueba sencilla que puedes hacer es cambiar la clase del botón por un TSpeedButton. Estos tienen la cualidad de que no reciben el foco; De esta forma no se te hará invisible al realizar el Click.


La franja horaria es GMT +2. Ahora son las 09:40:09.

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