Пропорциональное отображение в TScrollBar или TStringGrid

Материал из DRKB

Пропорциональное отображение в TScrollBar или TStringGrid[править | править код]

// 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;


Source: Взято с сайта: http://www.swissdelphicenter.ch
ID: 01103