Prueba cambiando SB_GETRECT por WM_USER + 10
Código Delphi
[-]
procedure TForm1.StatusBar1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i: Integer;
R: TRect;
begin
with (Sender as TStatusBar) 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
ShowMessage('Has pulsado el panel: ' + IntToStr(i));
Exit;
end;
end;
end;