Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Hint en un TStatusPanel (https://www.clubdelphi.com/foros/showthread.php?t=42861)

ixMike 24-04-2007 20:26:33

Hint en un TStatusPanel
 
Hola de nuevo.

¿Es posible hacer que los distintos paneles de una TStatusBar posean hints?
Y, si es así, ¿cómo podría hacerlo?

Utilizo Delphi 3.

Gracias.

Wellnic 26-04-2007 00:29:00

Hola:

A primera vista parece que no es posible poner un hint a cada panel, pero en programación siempre hay una solución :) , si no es por las buenas puede ser por las malas. A mí se me ocurre algo así:
Código Delphi [-]
// poner un día de la semana en el hint de cada panel:

Const semana: Array[0..6] Of String= ('Lunes', 'Martes', 'Miércoles', 'Jueves',
                                           'Viernes', 'Sábado', 'Domingo');
...

procedure TForm1.StatusBar1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
StatusBar1.Hint:= semana[x Div 50];
end;

Esto suponiendo que todos los paneles tengan la misma anchura (50 en el ejemplo), sino, la cosa se complicaría mucho. En ese caso como mínimo habría que crear otra matriz (o array) con la anchura de cada panel, por ejemplo...

Lepe 26-04-2007 13:42:18

Para anchos de paneles diferentes, puedes calcular la posición:

Código Delphi [-]
procedure TForm1.StatusBar1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);

var ancho, panel:integer;
begin
  ancho := 0;
  panel := 0;
  for panel := 0 to statusbar.panels.count -1 do
  if ancho + statusbar.panels[panel].width > X then
     break
  else
    ancho := ancho + statusbar.panels[panel].width;

  StatusBar1.Hint:= semana[panel];    
end;

Saludos

Wellnic 10-05-2007 23:22:30

Cita:

Empezado por ixMike
Hola de nuevo.

¿Es posible hacer que los distintos paneles de una TStatusBar posean hints?
Y, si es así, ¿cómo podría hacerlo?

Utilizo Delphi 3.

Gracias.

He estado mareando la perdiz con este tema. Si aún estás interesado, pásate por la sección de trucos, a ver qué te parece...

ixMike 11-05-2007 19:23:37

Muchísimas gracias a los dos. Tendré que probarlo.

Y perdón por la tardanza, he estado de exámenes.


La franja horaria es GMT +2. Ahora son las 16:22:07.

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