Пропорциональное отображение в TScrollBar или TStringGridDelphi , Компоненты и Классы , TStringGrid и TDrawGridПропорциональное отображение в TScrollBar или TStringGrid
Оформил: DeeCo // Getting a TScrollbar control to Show a proportional thumb: procedure TForm1.Button1Click(Sender: TObject); var info: TScrollInfo; begin FillChar(info, SizeOf(info), 0); with info do begin cbsize := SizeOf(info); fmask := SIF_PAGE; nPage := ScrollBar1.LargeChange; end; SetScrollInfo(ScrollBar1.Handle, SB_CTL, info, True); end; // Same for a TStringGrid procedure TForm1.Button1Click(Sender: TObject); var info: TScrollInfo; begin FillChar(info, SizeOf(info), 0); with info do begin cbsize := SizeOf(info); fmask := SIF_ALL; GetScrollInfo(StringGrid1.Handle, SB_VERT, info); fmask := fmask or SIF_PAGE; nPage := 5 * (nmax - nmin) div StringGrid1.RowCount; // whatever number of cells you consider a "page" end; SetScrollInfo(StringGrid1.Handle, SB_VERT, info, True); end; Прекрасный фрагмент кода на Delphi! Цель этих двух процедур - сделать TScrollbar (или TStringGrid) отображать пропорциональную кнопку прокрутки. Кнопка прокрутки представляет собой текущее положение в области, которую можно прокручивать. Давайте разберемся, что каждый из этих процедур делает: Пример TScrollbar
Описание шаг за шагом: 1. Создать структуру TScrollInfo и заполнить ее нулями с помощью FillChar. 2. Установить поле cbsize в размер структуры info. 3. Установить поле fmask в SIF_PAGE, что указывает на то, что мы хотим отобразить кнопку прокрутки. 4. Вычислить размер страницы, установив nPage в значение LargeChange scrollbar. 5. Позвать SetScrollInfo с handle scrollbar, типом контроля (SB_CTL) и обновленной структурой info. Пример TStringGrid
Описание шаг за шагом: 1. Создать структуру TScrollInfo и заполнить ее нулями с помощью FillChar. 2. Установить поле cbsize в размер структуры info. 3. Установить поле fmask в SIF_ALL, что указывает на то, что мы хотим отобразить кнопку прокрутки и информацию о странице. 4. Получить текущую информацию о прокрутке для вертикальной полосы прокрутки (SB_VERT) с помощью GetScrollInfo. 5. Добавить флаг информации о странице к маске. 6. Вычислить размер страницы, умножив максимальное количество строк минимального количества строк на 5, а затем делить на количество строк в grid. 7. Позвать SetScrollInfo с handle grid, типом контроля (SB_VERT) и обновленной структурой info. В целом, эти процедуры делают TScrollbar или TStringGrid отображать пропорциональную кнопку прокрутки, установив правильные значения масок и вычисляя размер страницы на основе свойств области, которую можно прокручивать. В статье описывается способ настройки пропорционального отображения в TScrollBar и TStringGrid при помощи метода SetScrollInfo и структуры TScrollInfo. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: TStringGrid и TDrawGrid ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |