Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.07;
Скачать: CL | DM;

Вниз

DBGrid + скролл   Найти похожие ветки 

 
RWolf ©   (2009-12-30 16:36) [0]

Подскажите функциональный аналог компонента DBGrid, в котором при прокрутке вертикального скроллбара курсор не перемещается по записям связанного с таблицей источника данных, т. е. ведёт себя, как выделенная строка в StringGrid.
(предполагается, что результаты запроса выкачаны с сервера полностью, так что позиция вертикального скроллбара имеет смысл).


 
Anatoly Podgoretsky ©   (2009-12-30 16:46) [1]

> RWolf  (30.12.2009 16:36:00)  [0]

Что же он тогда будет показывать в этом случае, ведь в dbgrid нет данных?


 
RWolf ©   (2009-12-30 16:53) [2]

то же самое, что и DBGrid — набор записей из кэша связанного датасета.


 
Медвежонок Пятачок ©   (2009-12-30 16:55) [3]

стринггрид


 
Сергей М. ©   (2009-12-30 16:56) [4]


> набор записей из кэша связанного датасета.
>


Так ведь при прокуртке кэш как правило обновляется, а значит изменяется и позиция тек.записи ..


 
KilkennyCat ©   (2009-12-30 22:04) [5]

да она может хоть миллион раз изменяться, ничто не мешает помнить нужную.


 
12 ©   (2009-12-31 09:40) [6]

там в предке можно попробовать WMVScroll подредактировать


 
sniknik ©   (2009-12-31 09:47) [7]

> можно попробовать WMVScroll подредактировать
много редактировать придется, и не только в WMVScroll. скорее речь должна идти не о "подредактировании", а о полном переписывании логики.


 
12 ©   (2009-12-31 11:16) [8]

да почему ж
если все что 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 12:45) [9]

ну попробуй, и посмотри что получится.


 
12 ©   (2009-12-31 12:50) [10]

не, это пусть автор, меня и так устраивает :)



Страницы: 1 вся ветка

Текущий архив: 2010.03.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1261561746
TUser
2009-12-23 12:49
2010.03.07
Россия 88


6-1214280494
Василий
2008-06-24 08:08
2010.03.07
WebBrowser отображение объектов


2-1262702443
RWolf
2010-01-05 17:40
2010.03.07
ленивые вычисления


15-1261471578
StriderMan
2009-12-22 11:46
2010.03.07
if Value = True then


2-1261733510
2expres
2009-12-25 12:31
2010.03.07
Mediaplayer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский