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;