![]() |
![]() ![]() ![]() ![]() |
|
Пропорциональное отображение в 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 прямо в свой смартфон. Подпишитесь на наш :: Главная :: TStringGrid и TDrawGrid ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||