Определить размер ScrollBar

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
novo
новенький
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Определить размер ScrollBar

Сообщение novo »

А именно необходимо определить ширину ScrollBar в StringGrid
Ustas
постоялец
Сообщения: 153
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Сообщение Ustas »

Походу запоздалый ответ... :oops:
Для Windows я делаю так

Код: Выделить всё

// The code for the ScrollBarVisible function is below:
function ScrollBarVisible(Handle : HWnd; Style : Longint) : Boolean;
begin
   Result := (GetWindowLong(Handle, GWL_STYLE) and Style) <> 0;
end;

// толшина vertical scrollbar
function tmp_Size_Vertical_Scrollbar(Grid_Handle: THandle): Integer;
begin
   if ScrollBarVisible(Grid_Handle, WS_VSCROLL) then
      Result := GetSystemMetrics(SM_CXVSCROLL)
   else
      Result := 0;
end;

// толшина horizontal scrollbar
function tmp_Size_Horizontal_Scrollbar(Grid_Handle: THandle): Integer;
begin
   if ScrollBarVisible(Grid_Handle, WS_HSCROLL) then
      Result := GetSystemMetrics(SM_CXHSCROLL)
   else
      Result := 0;
end;


У меня встречный вопрос, как это сделать, например, для Ubuntu?
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Ustas писал(а):У меня встречный вопрос, как это сделать, например, для Ubuntu?

Точно так-же. Функция GetSystemMetrics объявлена в модуле LCLIntf, константы SM_XXXX объявлены в модуле LCLType.
Ustas
постоялец
Сообщения: 153
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Сообщение Ustas »

kazalex писал(а):
Ustas писал(а):У меня встречный вопрос, как это сделать, например, для Ubuntu?

Точно так-же. Функция GetSystemMetrics объявлена в модуле LCLIntf, константы SM_XXXX объявлены в модуле LCLType.

Благодарю.
Ответить