Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Плавная прокрутка StringGrid


Автор: CODeRUS 10.3.2011, 14:35
Ищу компоненту StringGrid с плавной прокруткой для Delphi 2010. Бесплатную.

Автор: Keeper89 10.3.2011, 15:05
Ее можно итак сделать плавную

Автор: CODeRUS 10.3.2011, 15:22
Нельзя. Только модификацией компонент. Я просто прошу чтобы мне посоветовали кто чем пользовался.

Автор: Keeper89 11.3.2011, 00:58
Цитата(CODeRUS @  10.3.2011,  15:22 Найти цитируемый пост)
Нельзя. Только модификацией компонент

В Options у Грида опция goThumbTracking.

Автор: CODeRUS 11.3.2011, 09:30
спасибо, но мне бы хотелось прокрутку колесиком мыши =)

хм нашел такой вариант, все работает с одной фиксированной строкой как положено, может пригодится кому:
Код

procedure TForm1.StringGrid1MouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
const
  delta = 5;
begin
if TStringGrid(Sender).TopRow + delta + TStringGrid(Sender).VisibleRowCount < TStringGrid(Sender).RowCount then
  TStringGrid(Sender).TopRow := TStringGrid(Sender).TopRow + delta
else
  TStringGrid(Sender).TopRow := TStringGrid(Sender).RowCount - TStringGrid(Sender).VisibleRowCount;

Handled := True;
end;

procedure TForm1.StringGrid1MouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
const
  delta = 5;
begin
if TStringGrid(Sender).TopRow > 1 then
  if TStringGrid(Sender).TopRow > delta then
    TStringGrid(Sender).TopRow := TStringGrid(Sender).TopRow - delta
  else
    TStringGrid(Sender).TopRow := 1;

Handled := True;
end;


только еще пришлось вручную устанавливать форус на MouseEnter и "терять" его на MouseLeave

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