Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   statusbar y hints (https://www.clubdelphi.com/foros/showthread.php?t=13030)

urush30 04-08-2004 10:11:08

statusbar y hints
 
hola, mi pregunta es la siguiente, yo quiero mostrar el longhint en el statusbar pero lo quiero hacer de la manera siguiente:
1) Mientras el hint este visible en la pantalla el statusbar debera tener la propiedad simplepanel a verdadero y con el texto del longhint.
2) Cuando el hint este desactivado la propiedad simplepanel a falso porque en el statusbar tengo que mostrar otra informacion.

¿Como se puede hacer esto? ¿Hay algun evento que se pueda aplicar?

Gracias.

ruina 04-08-2004 13:28:42

sip, con ApplicationEvents (en la paleta, pestaña aditional) tienes controlado el evento OnShowHint, el único problema que le veo es que no tienes un OnHideHint, la solución que se me ocurre es poner un timer con el HideTimeout para volver a mostrar la información en varios paneles. Ma o o meno seria:

Código Delphi [-]
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: String;
  var CanShow: Boolean; var HintInfo: THintInfo);
begin
    StatusBar1.SimplePanel:=true;
    StatusBar1.SimpleText:=HintStr;
    Timer1.Enabled:=false;
    Timer1.Interval:= HintInfo.HideTimeout;
    Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
    StatusBar1.SimplePanel:=false;
    StatusBar1.Panels[0].Text:='feo';
    Timer1.Enabled:=false;
end;

Con el timer inicializado a false y el statusBar con paneles creados.

roman 04-08-2004 21:49:37

Me parece que basta usar el evento OnHint de ApplicationEvents:

Código Delphi [-]
procedure TForm1.ApplicationEvents1Hint(Sender: TObject);
begin
  StatusBar1.SimpleText := Application.Hint;
  StatusBar1.SimplePanel := (Application.Hint <> '');  
end;

Con esto, al pasar el mouse sobre un control con Hint, el StatusBar mostrará el texto en SimplePanel y los paneles se recuperarán tan pronto se pase sobre un control sin Hint o fuera de los controles (siempre y cuando el formulario mismo no tenga Hint).

// Saludos

urush30 05-08-2004 12:43:55

solucionado
 
gracias a todos por las respuestas, la respuesta de Roman funciona a la perfeccion y es limpia y sencilla y me he decantado por esa, aunque todas funcionan. Gracias.


La franja horaria es GMT +2. Ahora son las 14:50:25.

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