L'unico modo che conosco è testare il tipo di "finestra" che il controllo ha:
function CheckVBarIsVisible(Target: TWinControl): boolean;
begin
if Target <> nil then
Result := (GetWindowlong(Target.handle, GWL_STYLE) and WS_VSCROLL) <> 0
else
Result := false;
end;
//Uso:
begin
if CheckVBarIsVisible(StringGrid1) then
ShowMessage('ok');
end;
P.S.: il controllo deve essere testato da te, non penso sia possibile in Lazarus rilevare QUANDO la scrollbar viene visualizzata (cioè l'evento). In Delphi si può catturare un messaggio particolare ma in Lazarus non tento neanche, una buona parte dei messagi viene bloccata all'utente.
P.S1.: Sostituendo VSCROLL con HSCROLL ... testi la presenza della scrollbar orrizontale ;)