Mega Code Archive

 
Categories / Delphi / VCL
 

Get the extends of a visible scrollbar

Title: get the extends of a visible scrollbar? {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ when doing resizing operations, etc, sometimes you need a quick all in one call to get how much room to allow for a scrollbar (which might not even be there). To help with iterating sets of controls, these functions have been generalised to accept a TControl, which will just return 0 (since a TGraphicControl descendant will not have a HWND; depending on your control, you might want to alter this section if you have a TGraphicControl descendent which implements a kind of scroller) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} function GetScrollbarWidth(ctl: TControl): Integer; begin if ctl is TWinControl then begin if (GetWindowlong(TWinControl(Ctl).Handle, GWL_STYLE) and WS_VSCROLL) 0 then Result := GetSystemMetrics(SM_CXVSCROLL) else Result := 0; end else begin Result := 0; end; end; function GetScrollbarHeight(ctl: TControl): Integer; begin if ctl is TWinControl then begin if (GetWindowlong(TWinControl(Ctl).Handle, GWL_STYLE) and WS_HSCROLL) 0 then Result := GetSystemMetrics(SM_CXHSCROLL) else Result := 0; end else begin Result := 0; end; end;