![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid + скролл
RWolf © (2009-12-30 16:36:00)Подскажите функциональный аналог компонента DBGrid, в котором при прокрутке вертикального скроллбара курсор не перемещается по записям связанного с таблицей источника данных, т. е. ведёт себя, как выделенная строка в StringGrid.
(предполагается, что результаты запроса выкачаны с сервера полностью, так что позиция вертикального скроллбара имеет смысл).
12 (2009-12-31 12:50:00) [1]не, это пусть автор, меня и так устраивает :)
sniknik (2009-12-31 12:45:00) [2]ну попробуй, и посмотри что получится.
12 (2009-12-31 11:16:00) [3]да почему ж
если все что FDataLink связано убрать?
procedure TCustomDBGrid.WMVScroll(var Message: TWMVScroll);
var
SI: TScrollInfo;
begin
if not AcquireFocus then Exit;
if FDatalink.Active then
with Message, FDataLink.DataSet do
case ScrollCode of
SB_LINEUP: FDataLink.MoveBy(-FDatalink.ActiveRecord - 1);
SB_LINEDOWN: FDataLink.MoveBy(FDatalink.RecordCount - FDatalink.ActiveRecord);
SB_PAGEUP: FDataLink.MoveBy(-VisibleRowCount);
SB_PAGEDOWN: FDataLink.MoveBy(VisibleRowCount);
SB_THUMBPOSITION:
begin
if IsSequenced then
begin
SI.cbSize := sizeof(SI);
SI.fMask := SIF_ALL;
GetScrollInfo(Self.Handle, SB_VERT, SI);
if SI.nTrackPos <= 1 then First
else if SI.nTrackPos >= RecordCount then Last
else RecNo := SI.nTrackPos;
end
else
case Pos of
0: First;
1: FDataLink.MoveBy(-VisibleRowCount);
2: Exit;
3: FDataLink.MoveBy(VisibleRowCount);
4: Last;
end;
end;
SB_BOTTOM: Last;
SB_TOP: First;
end;
end;
sniknik (2009-12-31 09:47:00) [4]> можно попробовать WMVScroll подредактировать
много редактировать придется, и не только в WMVScroll. скорее речь должна идти не о "подредактировании", а о полном переписывании логики.
12 (2009-12-31 09:40:00) [5]там в предке можно попробовать WMVScroll подредактировать
KilkennyCat (2009-12-30 22:04:00) [6]да она может хоть миллион раз изменяться, ничто не мешает помнить нужную.
Сергей М. (2009-12-30 16:56:00) [7]
> набор записей из кэша связанного датасета.
>
Так ведь при прокуртке кэш как правило обновляется, а значит изменяется и позиция тек.записи ..
Медвежонок Пятачок (2009-12-30 16:55:00) [8]стринггрид
RWolf (2009-12-30 16:53:00) [9]то же самое, что и DBGrid — набор записей из кэша связанного датасета.
Anatoly Podgoretsky (2009-12-30 16:46:00) [10]> RWolf (30.12.2009 16:36:00) [0]
Что же он тогда будет показывать в этом случае, ведь в dbgrid нет данных?