Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Туманный вопрос про дбгрид [D5]


Andrey V. ©   (2003-10-15 08:47:00) 

Хочется чтобы грид при переоткрытии датасета не изменялся . Сейчас поясню что я имею в виду.
Допустим мы стоим на какой-то строке. Если закрыть/открыть датасет (и позиционироваться на ту же строку, где мы были) то мы можем оказкться (скорее всего) не в том месте относительно координат ЭКРАНА. ТО есть если я стою на строке N , а визуально это 5-я, к примеру , строка сверху , то и после переоткрытия хочется , чтобы это была 5-я строка сверху.
Вот такой Subj.


Izyum   (2003-10-15 13:33:00) [1]

Код поглядел, вечером попробую, но... Если я правильно понял (на вскидку), он после открытия датасета просто прокручивает грид на определенную дистанцию (дистанцию именно она и расчитывает). А если запрос сложный, БД большая, и, соответственно, открывается он долго. Грид все равно будет "дергаться". Если конечно пропадание инфы из грида не критично, а важно только точно после переоткрытия позиционироваться - то да.


Izyum   (2003-10-15 12:53:00) [2]


> Johnmen © (15.10.03 12:12) [16]

Тоды и мне, плиз: izum(собака)fromru.com


Andrey V.   (2003-10-15 12:22:00) [3]

Жду.Спасибо.


Johnmen   (2003-10-15 12:12:00) [4]

>Andrey V. © (15.10.03 11:46)

Могу выслать.


Andrey V.   (2003-10-15 11:46:00) [5]

Я , в лице прочих , рад за тебя :-)
Покажешь ?


Johnmen   (2003-10-15 11:17:00) [6]

>Andrey V. (15.10.03 11:02)
>Это вопрос или предложение ? :o)

Это то, что соответствует указанному мною знаку препинания.
:)))))


Andrey V.   (2003-10-15 11:02:00) [7]

Дискуссия идет в верном направлениии , но пока безрезультатно.

Johnmen
>Есть кусок кода по данному вопросу.
Это вопрос или предложение ? :o)


Izyum   (2003-10-15 10:36:00) [8]


> Johnmen © (15.10.03 10:33) [11]

Все вроде бы работало, хотя точно не пмню. Сейчас Делфей под рукой нет - вечером дома попробую, если успею.


Johnmen   (2003-10-15 10:33:00) [9]

>Izyum © (15.10.03 10:24)

Медальки здесь непричем :) И спорить надо, если есть аргументы...
Попробуй так: давим на кнопу вниз, пока не переместимся к примерно середине НД, в котором кол-во записей больше 2*<макс.количество линий, выводимых в грид>. Потом - описанные тобой действия. Что получается ?


Izyum   (2003-10-15 10:26:00) [10]


> Izyum © (15.10.03 10:24) [9]

Может где ошибся в коде - писал по памяти.


Izyum   (2003-10-15 10:24:00) [11]


> Johnmen © (15.10.03 10:21) [8]

У меня конечно нет медальки МАСТЕР в анкете, а посему спорить не буду, но...
У меня таблица переоткрывается без изменения грида вот так, и все работает.
<cade>
procedure TMainDM.GetClientsList;
var
i: integer;
begin
i:=Clients["id_c"];
Clients.DisableControls;
Clients.Close;
Clients.Open;
Clients.EnableControls;
Clients.Locate("id_c", i, []);
end;


Johnmen   (2003-10-15 10:21:00) [12]

>Izyum © (15.10.03 10:13)

1. Не то.
2. "на экране все без изменений."
Утверждение ошибочно.

>Andrey V.

Есть кусок кода по данному вопросу.


Vlad   (2003-10-15 10:14:00) [13]

Возможно ScrollBy поможет


Izyum   (2003-10-15 10:13:00) [14]


> Johnmen © (15.10.03 10:11) [5]


Не-а... Это понимать как "не работает" или "не подходит"?


Johnmen   (2003-10-15 10:11:00) [15]

>Izyum © (15.10.03 10:07)

Не-а...:)


Izyum   (2003-10-15 10:07:00) [16]

Ну дык перед всеми манипуляциями делаем DisableControls, а после EnableControls - на экране все без изменений.


KSergey   (2003-10-15 10:06:00) [17]

Тут, как я понял, не про букмарки речь, а именно по позицию активной строки на экране.
Судя по "(и позиционироваться на ту же строку, где мы были)" про букмарки человек в курсе.


Izyum   (2003-10-15 09:46:00) [18]

Используй Bookmark.
Либо сам (без закладок) запоминай позицию, отключай обновление контролов, закрывай/открывай дадасет, переходи на нужную тебе запись, включай обновление контролов.


KSergey   (2003-10-15 09:00:00) [19]

У грида, если ничего не путаю, есть св-ство типа TopRow или что-то подобное
Попробуйте его запользовать


Наверх

Титульная страница Поиск, карта сайта Написать письмо