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
with StatusBar do
for i:= 0 to Panels.Count - 1 do
begin
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 : 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.