| 
| 
 | Вопрос # 1 320/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 Имеется таблица с большим кол-вом строк. Отдельно и в стороне от неё имеется Scroll Bar в роли которого выступает Track bar.
 Как вы поняли нужно скроллировать таблицу этим Track Bar'ом в вертикальном направлении. Как это реализовать?
 
 Положение скрол бара компонента можно получить с пом. GetScrollPos, но она не работает, когда отображение скролбаров у таблицы выключены...
 
 Есть ли какой-то способ сделать так чтобы скролбары в таблице были, но видно их небыло?
 
|  |   Вопрос задал: Виталий (статус: 2-ой класс)Вопрос отправлен: 6 февраля 2008, 15:55
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Виталий!Не знаю, для чего такой изврат понадобился, но если уж хочеться:)
 итак. когда грид заполнили данными или количество строк поменялось,надо выполнить следующий код
 
 ScrollBar1.Min := 0;
ScrollBar1.Max := StringGrid1.RowCount - StringGrid1.VisibleRowCount - StringGrid1.FixedRows;
ScrollBar1.Position := StringGrid1.TopRow; а в событии onScroll ScrollBar'a пишем такое
 
 procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
  StringGrid1.TopRow := ScrollPos + StringGrid1.FixedRows;
end;Этот код учитывает даже кол-во фиксированных строк. 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 6 февраля 2008, 22:04
 Оценка за ответ: 5
 Комментарий к оценке: Большое спасибо, я даже не знал что у грида есть такие параметры... |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 8 февраля 2008, 22:07; участников в обсуждении: 2. 
|   | Виталий (статус: 2-ой класс), 8 февраля 2008, 13:17 [#1]:Ещё вопрос : 
 Как синхронизировать скрол бар с гридом.
 
 procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
 var ScrollPos: Integer);
 begin
 StringGrid1.TopRow := ScrollPos + StringGrid1.FixedRows;
 end;
 
 это при манипуляциями с скролом, а как отследить манипуляции с гридом? Я использую tsGrid из пакета TopGrid.
 |  
|   | Вадим К (статус: Академик), 8 февраля 2008, 22:07 [#2]:а всё то предельно просто - достаточно чуточку подумать. Добавим ещё такой обработчик 
 procedure TForm1.StringGrid1TopLeftChanged(Sender: TObject);
begin
  ScrollBar1.Position := StringGrid1.TopRow;
end;куда именно его вписать - оставляю как персональное задание   Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |