Ver Mensaje Individual
  #2  
Antiguo 16-06-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Reputación: 24
Bicho Va por buen camino
Cita:
Empezado por sitrico
Lo que sí es un problema es que los tImage no responden al click del ratón
Pero la statusbar si, que es realmente quien tiene asignada las imágenes y es a ella sobre la que haces click, no sobre las imágenes.

Puedes usar el evento OnClick o mejor aún, el OnMouseDown, que te da las coordenadas X, Y de la posición exacta del ratón sobre la barra donde has hecho click, sólo tienes que comparar esas coordenadas con el rango que ocupa cada una de las imágenes que tienes en la barra de estado. Además para hacerlo más sencillo puedes usar distintos panels en la barra, cada uno para una imagen.

Te pongo un ejemplo muy sencillo, en mis programas tengo una barra de estado con una imagen que imita una conexión abierta o cerrada (son dos imagenes y según una variable se cambian), pues bien al hacer clic sobre la posición donde esta la imagen en la barra de estado, el programa ejecuta el evento de conexión, se conecta y me cambia la imagen. Para saber si he pulsado sobre la imagen le pregunto lo siguiente:

Código Delphi [-]
procedure TForm1.StatusBar1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
     if x <= StatusBar1.panels[1].Width then begin
        if conectado then Desconecta
        else conecta;
     end;
end;

La imagen está en el primer panel de la barra y busco si he hecho click entre el principio de la barra (donde empieza el panel: X=0) y el ancho del panel (donde acaba la imagen: Panels[1].width), luego ya según el estado de la variable conecta o desconecta.

Espero te sirva de ayuda.

Saludos
Responder Con Cita