Текущий архив: 2003.01.23;
Скачать: CL | DM;
Вниз
Как обмануть DBGrid Найти похожие ветки
← →
TTCustomDelphiMaster © (2002-12-28 19:44) [0]Имеется rxDbGrid привязаный к TQuery. Как не допустить изменения отображаемой информации в DbGrid, если я программно перемещаюсь по записям в этом запросе и в конце возвращаюсь на текущую позицию (до перемещения). После этого текущая запись в DBGrid (если есть вертикальный скрол) отоббражается либо самой верхней, либо самой нижней.
← →
TTCustomDelphiMaster © (2002-12-28 19:58) [1]Другими словами как отобразить в DBGrid тот же диапазон строк, что был до производимых мной операций с его DataSet?
← →
VID © (2002-12-28 20:24) [2]ну ....
procedure TForm1.CopyDataClick(Sender: TObject);
var
SavePlace: TBookmark;
PrevValue: Variant;
begin
with Table1 do
begin
{ get a bookmark so that we can return to the same record }
SavePlace := GetBookmark; //Ставим закладку
DisableControls;
{ move to prior record}
FindPrior;
{ get the value }
PrevValue := Fields[0].Value;
{Move back to the bookmark
this may not be the next record anymore
if something else is changing the dataset asynchronously }
GotoBookmark(SavePlace); //Переходим к закладке
EnableControls;
{ Set the value }
Fields[0].Value := PrevValue;
{ Free the bookmark }
FreeBookmark(SavePlace); //Уничтожаем закладку
end;
end;
проверь подойдёт ли это тебе ?
← →
Сергєєв Володимир © (2002-12-28 20:27) [3]Даю последовательность действий, а детально - смотри хелпа Делфей.
1) DataSet.GetBookMark(BM)
2) DataSet.DisableControls
3) Do something.......
4) DataSet.GotoBookMark(BM).
5) DataSet.FreeBookMark(BM)
6) DataSet.EnableControls.
← →
Сергєєв Володимир © (2002-12-28 20:30) [4]Опа, пока набирал, VID уже нормально ответил.
← →
TTCustomDelphiMaster © (2002-12-28 20:58) [5]Да я примерно так и делаю, только вот работает это не так как мне нужно.
Результат запроса содержит 8 строк, а DBGrid оторажает 4 строки (все они невлазиют и имеется полоса прокрутки).
В DBGrid видно 3, 4, 5 и 6 строку. Причем 5 строка текущая.
Выполняю такою операцию:
a := GetBookMark;
DisableControls;
First;
GotoBookMark(a);
FreeBookMark(a);
EnableControls;
После этого в DBGrid видно 4, 5, 6 и 7 строку. 5 по прежнему активная. А как сделать, чтобы в DBGrid по прежнему отображал 3, 4, 5 и 6 строку?
← →
TTCustomDelphiMaster © (2002-12-28 21:21) [6]В событии OnDrawColumnCell при отрисовке каждой ячейки текущая запись в DataSet изменяется, однако потом текущая запись восстаналивается без всякого изменения положения Scroll и диапазона отображаемых записей. Я не могу понять как это сделано?
← →
TTCustomDelphiMaster © (2002-12-28 23:01) [7]Ну, вроде так получилось
with dbgCargo, dbgCargo.DataSource.DataSet do
begin
i := VisibleRowCount - Row;
j := RecNo + i - 1;
DisableControls;
// Перемещения по DataSet
First;
MoveBy(j);
MoveBy(-i);
EnableControls;
end;
Страницы: 1 вся ветка
Текущий архив: 2003.01.23;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.012 c