Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как изменить "квадратик" у полоски прокручивания?


Автор: ms 5.1.2006, 23:40
Здраствуйте. У меня небольшая проблема:
может кто-нибудь подсказать какая команда изменяет размер "квадратика" у "полоски прокручивания" (Slider, ScrollBar)?

Например мне надо сделать, чтоб этот квадратик (кстати как он называется?) был размером с половину Slider'а

Заранее большое спасибо всем откликнувшимся.

Автор: nworm 6.1.2006, 00:16
Не совсем понял, но может это нужно

Код

ScrollBar1.PageSize:=(ScrollBar1.Max - ScrollBar1.Min) div 2;

Автор: ms 6.1.2006, 00:33
Большое спасибо, но не это.
Мне нужна функция WINAPI, наподобие SETSCROLLPOS/ SETSCROLLRANGE только менять не позицию, а размер квадратика-ползунка.
Например в IE размер этого квадратика обратнопропорционален тексту,
то есть когда текста не очень много то появляется полоса прокрутки с длиным ползунком, а если текста много то размер ползунка изменяется (становится меньше). Мне нужна именно функция изменяущия длину ползунка.

Автор: Poseidon 6.1.2006, 00:56
Код
procedure SetPageSize(Value: integer; ScrollBar: TScrollBar);
var
  ScrollInfo: TScrollInfo;
begin
  ScrollInfo.cbSize := SizeOf(ScrollInfo);
  ScrollInfo.nPage := Value;
  ScrollInfo.fMask := SIF_PAGE;

  SetScrollInfo(ScrollBar.Handle, SB_CTL, ScrollInfo, True);
end;

Автор: ms 6.1.2006, 01:10
Да, да, да! smile как раз то, что нужно было! Огромное спасибо!smile
не ожидал, что так быстро получу ответ.

А не подскажите где в инете можно найти справочник по таким не очень расспространеным (на мой взгляд ) функциям?

Автор: Poseidon 6.1.2006, 01:13
http://msdn.microsoft.com/library/default.asp smile

Автор: Guest 6.1.2006, 01:35
Если можно еще один вопрос, чтоб узнать видна эта полоска(Slider) или нет, я проверяю флаг окна WS_VSCROLL/WS_HSCROLL функцией
GetWindowLong.
У меня всё работает, только я не знаю правильный ли это подход..

В MSDN посмотрел там пока не нашел...(наверно опыта мало), но сайт понравился.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)