-
Всем привет.
Возник вот такой вопрос.
Как можно в компоненте TdxDbGrid сделать, что бы после переоткрытия запроса (Query.Close;Query.Open) - курсор устанавливался на ту строку которая была текущей до переоткрытия и на той же высоте в гриде что была?
Искал в инете по этой тематике, нашел пример для TDbGrid
http://www.delphimaster.net/view/3-1116507782/allОднако добиться того же эффекта для TdxDbGrid так и не смог. Курсор ставится на нужную строку, однако строка эта всегда отображается в самой нижней видимой части грида.
-
если TdxDbGrid произошел от TCustomGrid (нет набора этого у меня)
то можно попробовать получить видимую часть
TCG = class (TCustomGrid);
TCG(dg1).VisibleRowCount;
потом, пролистать половину строк и вернуться по Locate на столько же назад
-
ааа.а никто об закладках не в курсе?
-
но на счет высоты... голяк
-
> ааа.а никто об закладках не в курсе?
по умолчанию предполагается
gotobookmark приводит к отображению в иных гридах или вверху /или внизу этой строки
> но на счет высоты... голяк
т.е.?
на стандартном dbgrid работает
-
> shiva (21.06.2012 10:56:00) [0]
Видимо это особенность TdxDbGrid, другие ставят в середину грида
-
> Курсор ставится на нужную строку, однако строка эта всегда
> отображается в самой нижней видимой части грида.
А чем это плохо?
-
Неудобно просто. У меня информация отображается в табличном виде. Когда происходит операция изменения данных одной строки или ввода новой, несколько неудобно что все смещается в самый низ..
-
а в чем необходимость переоткрытия запроса?
-
Есть база карточек, где в каждой карточке в виде таблицы (DxDBGrid) отображается вся информация по ней, это порядка 90 строк. Информация в этой карточке как бы шаблон, т.е. отображаются список "параметров" (90 шт).
В новой не заполненной карточке отображаются сами параметры и справа от них ячейки (назовем их допустим "информация о параметре") будут изначально пустые. Их будет заполнять пользователь.
При заполнении "информации о параметре" к-во строк так и остается 90, - изменяется только заполненность строк справа от параметров.
Когда вносишь изменения в одну из таких строк, надо информацию обновить после сохранения в таблице с параметрами, соответственно переоткрываешь запрос и переходишь на строку где был до внесения изменений. Сделано это через datasetsortedsearch.
После этого курсор будет стоять на строке на какой и был, но в самом низу экрана, и если надо следующий перейти на параметр или посмотреть что после него идет - надо снова скролить грид каждый раз. Оно руки не отвалятся, но не удобно искать глазами куда оно прыгнуло каждый раз ..
-
> [9] shiva © (25.06.12 09:58)
> .е. отображаются список "параметров" (90 шт).
И зачем это? Почему не в полях таблицы эти параметры?
-
программа не моя. я бы совсем иначе бы сделал. а менять кардинально мне зарпещают.
-
Параметры я условно назвал. Если хотите можно назвать "данные карточки" (я не зря название "параметры" в кавычки взял ) А "параметры" и так в полях таблицы. просто сам запрос очень большой берется информации из нескольких таблиц.