![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение курсора в текущем месте дбгрида [D5]
sapsi © (2003-04-14 14:16:00)ДОбрый день.
При выполнении сортировки (по щелчку на title дб грида), происходит перемещение отображения к первому столбцу грида.
Как этого избежать?
Спасибо.
sapsi (2003-04-17 15:11:00) [1]2Mike Kouzmine
Так как все же определить, что столбец грида в данный момент видимый
sniknik (2003-04-16 16:26:00) [2]ну во первых зачем? но раз уж начал ладно, поставил dgrowselect у грида и ничего, скачет по тем полям по которым щелкаю, в начало не хочет. (если конечно не щелкнуть в начале)
говорю же глюк у меня, раз все работает так как ожидается. :-))
sapsi (2003-04-16 15:14:00) [3]2 sniknik
Поставь dgrowselect:=true у дб грида.
и тогда при любом щелчке на гриде тебя будет возвращать в начало дбгрида.
sapsi (2003-04-16 13:28:00) [4]как определить, что столбец видимый
Mike Kouzmine (2003-04-16 11:48:00) [5]Прав, конечно.
Но поведусь еще раз. Запоминать на OnExit грида первый видимый столбец (крайний левый), и после действия делать его оным.
sniknik (2003-04-16 10:33:00) [6]забавно смотреть как пытаются избавится от того чего не сушествует.
и самое интересное, что все это без строчки кода, чисто "абстрактно".
но во первых - такого не бывает (абстрактного знания и чтобы везде было применительно)
во вторых - попытался добится того же ("Выполнить сортировку, чтобы ставилось в начало, если стоит: "выбрать всю строку".") и не получилось! оно остается там где стояло до...! (пример в форме Exe-шника могу выслать всем желающим, для разбора)
код по примеру автора приводить не буду, но вопрос - может у меня глюк где?
:::: звонок в службу поддержки микрософта. - я поставила виндовс 95 в 95-м году, и с того времени ни одного глюка, сбоя, зависания. скажите что я делаю не так? :о))) (анекдот если кто не понял, в тему)
sapsi (2003-04-16 10:03:00) [7]так как, Если стоит у грида "Выделить всю строку", то текущего столбца НЕТ - они все как текущие (dgSelected + dgFocused)
Mike Kouzmine (2003-04-15 17:27:00) [8]Почему?
sapsi (2003-04-15 16:48:00) [9]все равно установить на нужный столбец не удается.
Mike Kouzmine (2003-04-14 17:14:00) [10]На онэкзит всех столбцов - запоминание селектединдекс в глобальной переменной. Дальше определяй видимо это или нет.
sapsi (2003-04-14 17:00:00) [11]2 ms guns: то же самое
2 all : невнимательно читаете вопрос...
речь не о locate и т.п.
а о том, как прокрутить dbgrid на нужный столбец.
Спасибо.
sapsi (2003-04-14 16:58:00) [12]2 dim
Не строку запомнить (это просто), а столбец, на который пользователь прокрутил скролл сверху в гриде.
Выполняется сортировка, ставится в начало, если стоит: "выбрать всю строку".
MsGuns (2003-04-14 16:33:00) [13]Перед тем, как переоткрыть запрос с изменненным ORDER BY (если исп-ся GridEh, то там есть соотв-ее событие), запомнить ID текущей записи (выделенная.строка грида всегда отображает текущую запись НД), а после переоткрытия Locate для этого НД по идентификатору, значение которого запомнил перед этим.
Если стоит у грида "Выделить всю строку", то текущего столбца НЕТ - они все как текущие (dgSelected + dgFocused)
dim (2003-04-14 16:31:00) [14]Запоминаем:
CurrrentRow := Query1.FieldByName("ID").AsInteger;
закрываем запрос, изменяем текст запроса, открываем запрос
Вспоминаем:
Query1.Locate("ID",CurrrentRow, []);
sapsi (2003-04-14 16:13:00) [15]Заметил, что все работает без всяких ухищрений, если в опциях грида не стоит "выбрать всю строку" (dgrowselect:=false), а вот если не false, то как сделать?
VAleksey (2003-04-14 15:35:00) [16]Смотри св-ва колонок dbGrida. Что-то типа SelectedColums или помотри Columns[..], там должен быть нужный тебе способ.
sapsi (2003-04-14 15:09:00) [17]Букмарк разве на столбец возвращает нужный?
Соловьев (2003-04-14 14:52:00) [18]BooKMark - закладка у НД.
sniknik (2003-04-14 14:51:00) [19]а как же, ктонибудь обязательно!
sapsi (2003-04-14 14:46:00) [20]Кто-нибудь знает?