Ver Mensaje Individual
  #6  
Antiguo 29-05-2008
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 22
movorack Va camino a la famamovorack Va camino a la fama
O.k.... así siiii

Gracias de verdad, tu dato es muy útil...

la función entonces quedó así

Código Delphi [-]
function TForm.GetStatusBarPanelClicked(StatusBar : TStatusBar; X, Y: Integer) : Integer;
var
  i: Integer;
  R: TRect;
begin
  // Buscamos panel a panel hasta encontrar cual se ha pulsado
  with StatusBar do
    for i:= 0 to Panels.Count - 1 do
    begin
      // Obtenemos las dimensiones del panel
      SendMessage(Handle,WM_USER + 10,i,Integer(@R));
      if PtInRect(R,Point(x,y)) then
      begin
        Result := i;
        Exit;
      end else Result := -1;
    end;
end;

Y para llamarla, dentro del procedimiento así:

Código Delphi [-]
procedure TForm.StatusBarMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  case GetStatusBarPanelClicked(TSTatusBar(Sender), X, Y) of
    2 : //aquí ejecutamos algo;
  end;
end;

Lo he probado también con el MouseMove y funciona de pelos... además no importa si uso la TSTatusBar o un descendiente.

Nuevamente gracias.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita