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

Вниз

Ненашел нужного метода   Найти похожие ветки 

 
Анатолий   (2003-10-13 08:59) [0]

Привет всем !
Написал приложение с использованием DBGrid, DBTable и периодически мне необхиодимо делать Refresh данных, все данные в окне со скроллом вертикальным и как только я обновляю (DBTable1.Refresh) курсор в гриде уходит на первую строку ! обновление идет раз в секунду, вобщем до некоторых записей добраться очень сложно. Хочу перед Refresheм запонимать позицию курсора в DBGrid, а после рефреша устанавливать курсор туда где он и был, после долгих исканий в Дельфи ненашел функции которая вернула бы мне номер текущей строки ! Помогите мне советом и извините если вопрос глупый...книжек у меня нету, только стандартных хелп и вы )


 
Reindeer Moss Eater ©   (2003-10-13 09:03) [1]

var bm:TBookMark;
bm:=DBTable1.GetBookMark;
.....
DBTable1.GotoBookmark(bm);
DBTable1.FreeBookmark(bm)


 
DenK_vrtz ©   (2003-10-13 09:03) [2]

1.Перед Refresh"ем запомнить id строки (если таковой есть), а после Refresh сделать Locate
2.Использовать Bookmark


 
Леван Варшанидзе   (2003-10-13 09:15) [3]

po moemu, Variant bookmark luchse, no mojno dobavit disableconrols i enablecontrols, chtobi ne melkalo:

dbgrid.datasource.dataset.disablecontrols();
bm:=dbgrid.datasource.dataset.getbookmark;

dbgrid.datasource.dataset.refresh();
i obratno:

dbgrid.datasource.dataset.gotobookmark(bm);
dbgrid.datasource.dataset.enablecontrols();


 
Silver Alex ©   (2003-10-13 09:16) [4]

var bm:TBookMark;

bm:=DBTable1.GetBookMark;
try
dbTable1.DisableControls;
...
DBTable1.GotoBookmark(bm);
finally
DBTable1.FreeBookmark(bm);
dbTable.EnableControls;
end;


 
Sergey13 ©   (2003-10-13 09:19) [5]

2Анатолий (13.10.03 08:59)
>обновление идет раз в секунду, вобщем до некоторых записей добраться очень сложно.
8-)
Может чего в консерватории подправить.


 
Анатолий   (2003-10-13 09:20) [6]

спасибо, все отлично работает !
есть еще вопрос по теме ! когда я меняю позицию курсора колесом мыши, то при рефреше (период 1 сек) курсор возвращается на то место где был до этого, если тоже самое делаю с клавиатуры или нажатием левой кнопы мыши то все в порядке, как сделать чтобы при использовании колеса курсор тоже фиксировался, а не возвращался на исходную позицию ?


 
Леван Варшанидзе   (2003-10-13 09:49) [7]

Navernoe, nado sootvetstvenno obrabotat onmousemove pered refresh-om ?!


 
dim- ©   (2003-10-13 10:03) [8]

Используй RXDbGrid из RXLib


 
sniknik ©   (2003-10-13 10:56) [9]

Анатолий (13.10.03 09:20) [6]
> как сделать чтобы при использовании колеса курсор тоже фиксировался ...
просто двигай курсор в связаном датасете по этому событию, а не исключитльно в гриде как в стандартном
так примерно

TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;
end;

procedure TMyDBGrid.WMMouseWheel(var Msg: TWMMouseWheel);
begin
if DataSource.DataSet.Active then begin
if Msg.WheelDelta > 10 then DataSource.DataSet.Prior;
if Msg.WheelDelta < -10 then DataSource.DataSet.Next;
end;
end;

пользоватся в этом случае естественно придется TMyDBGrid гридом.


 
NikB   (2003-10-14 00:59) [10]

Eto diskusia otvetila na vopros, no v nem v neiavnom vide predpologaetsa, chto imenno v etom dbTable1 delaiutsa izmenenia. Mne kajetsa, chto esli odin komponent TTable priviazan s DBGrid, a izmenenia delaiutsa v drugoi komponent tTable (v toi je tablice(file) na harddisk) Refresh ne rabotaet (nado zamenit s close/open. Tak li eto ili ia oshibsia?



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
1-8469
frogk
2003-10-24 12:03
2003.11.03
Файл из записей


1-8389
DolginD
2003-10-21 16:09
2003.11.03
Как грамотно организовать много потоков


1-8532
Dream
2003-10-23 15:03
2003.11.03
как вызвать процедуру или функцию которая находиться в другом


14-8630
VMcL
2003-10-14 18:45
2003.11.03
Последний дебил


3-8259
Denisiy
2003-10-14 12:47
2003.11.03
Авторазмер столбцов в DBGrid - бывает?