Форум: "Начинающим";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизПроклятый 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c