Ver Mensaje Individual
  #2  
Antiguo 21-09-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Puede que exista un método mas sencillo, pero ahora mismo lo que se me ocurre es lo siguiente. En le evento OnMouseUp colocar esto:

Código Delphi [-]
uses CommCtrl; // Añade esto a las uses

procedure TForm1.StatusBar1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  i: Integer;
  R: TRect;
begin
  // Buscamos panel a panel hasta encontrar cual se ha pulsado
  with (Sender as TStatusBar) do
    for i:= 0 to Panels.Count - 1 do
    begin
      // Obtenemos las dimensiones del panel
      SendMessage(Handle,SB_GETRECT,i,Integer(@R));
      // Y comprobamos si se ha hecho click dentro de el
      if PtInRect(R,Point(x,y)) then
      begin
        // El numero del panel esta en i, usalo para lo que quieras
        ShowMessage('Has pulsado el panel: ' + IntToStr(i));
        Exit;
      end;
    end;
end;
Responder Con Cita