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

Вниз

Проклятый DBGrid   Найти похожие ветки 

 
WhiteCat   (2006-07-21 23:45) [0]

Здравствуйте! Подскажите, пожалуйста, могу я сделать скролирование в DBGrid как в Excel? Т.е. чтоб фокус с выбранной строки не соскавивал при прокрутке сетки.


 
XeON ©   (2006-07-21 23:52) [1]

Попробуй взять сторонние компоненты DBGrid. Будет тебе и фокус не соскакивающий и всё что угодно. Они намного практичнее.


 
WhiteCat   (2006-07-21 23:55) [2]

Ну в принципе я и пользуюсь сторонним компонетом - JVCL. Какие у меня есть возможности реализовать задуманное?


 
Gydvin ©   (2006-07-22 00:01) [3]


>  Проклятый DBGrid


Может побрызгать святой водой? :)))


 
KilkennyCat ©   (2006-07-22 00:06) [4]

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;


переделать.


 
WhiteCat   (2006-07-22 00:12) [5]

To KilkennyCat
 Спасибо, брат!
 
Правда, получается нужен свой компонент, который еще и регить в системе нуна. Или возможны варианты?


 
KilkennyCat ©   (2006-07-22 00:15) [6]

Возможно исправить генофонд. Но это чревато многим, в том числе забитием меня ногами остальными форумчанами :)
Но а чего там писать-то... наследование, инкапсуляция и полиморфизм облегчают жизнь...


 
WhiteCat   (2006-07-22 00:16) [7]

ХА! Посмотрел внимательнее! И что здесь можно переделать?
Как прокрутить сетку оставив фокус на выбранной строке?

Уточняю: Подскажте команду которая покажет мне последнюю линию в сетке, а выбранной останется первая(к примеру)


 
WhiteCat   (2006-07-22 00:17) [8]

ХА! Посмотрел внимательнее! И что здесь можно переделать?
Как прокрутить сетку оставив фокус на выбранной строке?

Уточняю: Подскажте команду которая покажет мне последнюю линию в сетке, а выбранной останется первая(к примеру)


 
WhiteCat   (2006-07-23 22:19) [9]

to Gydvin
 Так что идти за святой водой?
или все же
 Как прокрутить сетку оставив фокус на выбранной строке?

Уточняю: Подскажте команду которая покажет мне последнюю линию в сетке( при большом количестве строк), а выбранной останется первая(к примеру)


 
Desdechado ©   (2006-07-24 10:38) [10]

Не может быть выбранным то, чего не видно. А при скроллинге до последней строки текущая может уйти за пределы видимости.


 
WhiteCat   (2006-07-24 12:49) [11]

to Desdechado
 т.е. сделать скролинг, подобный Excel с помощью DBGrid невозможно?


 
Плохиш ©   (2006-07-24 12:52) [12]


> WhiteCat   (24.07.06 12:49) [11]
> to Desdechado
>  т.е. сделать скролинг, подобный Excel с помощью DBGrid
> невозможно?

DBGrid не предназначен для этого, он отображает только часть данных, которые помещаются на экран, о других данных из привязанного источника DBGrid ничего не знает.


 
WhiteCat   (2006-07-24 15:46) [13]

to KilkennyCat
Так что Кот из киллкенни, привет тебе от белого брата. Ничего не поможет, даже наследование с полиморфизмом.

Всем спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.066 c
15-1153404776
Гарри Поттер
2006-07-20 18:12
2006.08.13
Чего все ополчились против Израиля?


15-1152793731
Yeg
2006-07-13 16:28
2006.08.13
Siemens AT Commands


2-1153984121
.ruslan
2006-07-27 11:08
2006.08.13
...с оформлением компонента TWebBrowser


2-1153747529
dera
2006-07-24 17:25
2006.08.13
Вопрос о БД.


15-1153225104
ddddd
2006-07-18 16:18
2006.08.13
Сохранение сообщений об ошибках сторонней программы