Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
2-1262528631
Антон К.
2010-01-03 17:23
2010.03.07
Как заполнить поля в определенном фрейме?


15-1261416148
@!!ex
2009-12-21 20:22
2010.03.07
Продажа доступа к данным. Как лучше?


11-1213110210
!Pharaon!
2008-06-10 19:03
2010.03.07
Следующий элемент в List Box


15-1261332716
Smile
2009-12-20 21:11
2010.03.07
Желающие поговорить ни о чЁм - милости прошу


2-1262076709
tipman
2009-12-29 11:51
2010.03.07
Узнать о завершении работы потока, как?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский