Вниз
Скачать: CL | DM;

Получить позицию первой выводимой записи в DBGrid-е   Найти похожие ветки 

← →
diwww   (2005-10-27 15:10) [0]

В DBGrid выводятся данные из Table
Пользователь прокручивает данные в DBGrid-е
Потом периодически пользователь выполняет действие, приводящее к Table.Refresh
При этом данные в DBGrid-е отображаются с самого начала
Надо чтобы MSTable3.Refresh в DBGrid записи отображались с той, с которой и перед Refresh-ем
Как это сделать?


← →
Ega23 ©   (2005-10-27 15:16) [1]

Сохранять значение ключевого поля в локальной переменной, потом

dataSet.DisableControls;
Refresh;
DataSet.Locate(Ключевое_поле, сохранённое_значение, [])
dataSet.EnableControls;


← →
diwww   (2005-10-27 15:19) [2]

> Ega23 ©   (27.10.05 15:16) [1]
А как получить значение ключевого поля первой выводимой записи в DBGrid-е?


← →
diwww   (2005-10-27 15:20) [3]

...
Независимо от того установлен на ней фокус или нет


← →
Ega23 ©   (2005-10-27 15:27) [4]


> Независимо от того установлен на ней фокус или нет


Ну-у-у-у... Можно DBGid.DataSource.DataSet.First сделать. Ну курсор тогда передвинется.
Можно ещё круче изгольнуться, TDataLink создать.
Тока оно тебе надо?


← →
Desdechado ©   (2005-10-27 15:32) [5]

первой видимой в данный момент?
посчитать от текущей выделенной :)
Имхо, проще запоминать текущую


← →
diwww   (2005-10-27 15:35) [6]

> Ega23 ©   (27.10.05 15:27) [4]
Попробовал...
DBGid.DataSource.DataSet.First устанавливает фокус на вообще первой записи в DBGrid-е, а не на первой видимой записи :(
>Можно ещё круче изгольнуться, TDataLink создать.
поясните немного, пожалуйста. Не пользовался раньше TDataLink
>Тока оно тебе надо?
к сожалению надо :(
чтобы было красиво

>Desdechado ©   (27.10.05 15:32) [5]
>первой видимой в данный момент?
да


← →
isasa ©   (2005-10-27 15:37) [7]

Уже отменили!
property Bookmark: TBookmarkStr;  //Specifies the current bookmark in the dataset.


← →
Desdechado ©   (2005-10-27 15:48) [8]

2 isasa
Bookmark НЕЛЬЗЯ использовать в переоткрытом датасете, т.к. этот адрес действителен только в пределах конкретного открытия данных


← →
diwww   (2005-10-27 15:52) [9]

> isasa ©   (27.10.05 15:37) [7]

Попробовал... не совсем то :((

SavePlace := Table.GetBookmark;
Table.Refresh;
Table.GotoBookmark(SavePlace);
Table.FreeBookmark(SavePlace);

приводит к тому что по центру DBGrid-а выравнивается запись, которая перед Refresh-ем была в фокусе
Т.е. привязка к фокусу, что не нужно
Нужно определить первую ОТОБРАЖАЕМУЮ запись в DBGrid


← →
isasa ©   (2005-10-27 16:07) [10]

Bookmark НЕЛЬЗЯ использовать в переоткрытом датасете

Конкретного запрета или ограничения на то, что она действительна до Refresh - нет.


← →
msguns ©   (2005-10-27 16:13) [11]

>isasa ©   (27.10.05 16:07) [10]
>Конкретного запрета или ограничения на то, что она действительна до Refresh - нет.

Конкретного запрета ходить на голове нет, однако ж не ходит никто ;)


← →
diwww   (2005-10-27 17:05) [12]

Как определить первую ОТОБРАЖАЕМУЮ запись в DBGrid?

up


← →
Johnmen ©   (2005-10-27 17:18) [13]

>Как определить первую ОТОБРАЖАЕМУЮ запись в DBGrid?

Ну определишь, а что это тебе даст?


← →
Desdechado ©   (2005-10-27 17:22) [14]

1. у тебя есть высота грида
2. у тебя есть высота строки
3. у тебя есть текущая строка и ее координаты в гриде
4. применяем простейшие арифметические операции


← →
ЮЮ ©   (2005-10-28 03:25) [15]

Посмотри как грид рисует все строки, начиная с "первой видимой":

 OldActive := FDataLink.ActiveRecord;
 try
   DataLink.ActiveRecord := ARow;
   if Assigned(DrawColumn.Field) then
         Value := DrawColumn.Field.DisplayText;
      т.е здесь фактически меняется текущая запись НД
   ...
 finally
   DataLink.ActiveRecord := OldActive;
 end;

Как достучаться до protected св-ва TDBGrid.DataLink, надеюсь знаешь.

А вот как ты собираешься позиционировать НД так, чтобы первая запись в гриде опять стала первой, а не произвольной, как в случае с текущей записью, это ещё вопрос!!!



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.042 c
2-1133163208
312Kbps
2005-11-28 10:33
2005.12.11
idHTTP , Помогите новичку ))))


1-1131507885
TFire
2005-11-09 06:44
2005.12.11
Как вытянуть History из Mozilla FireFox ?


1-1132124995
DEMs
2005-11-16 10:09
2005.12.11
Компонент TVirtualStringTree


6-1125054010
Dr.Nemo
2005-08-26 15:00
2005.12.11
Скачка файла с интернета


14-1132559681
RaPToRidze
2005-11-21 10:54
2005.12.11
remote desktop




   Наверх