Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Туманный вопрос про дбгрид   Найти похожие ветки 

 
Andrey V.   (2003-10-15 08:47) [0]

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


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

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


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

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


 
KSergey   (2003-10-15 10:06) [3]

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


 
Izyum   (2003-10-15 10:07) [4]

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


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

>Izyum © (15.10.03 10:07)

Не-а...:)


 
Izyum   (2003-10-15 10:13) [6]


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


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


 
Vlad   (2003-10-15 10:14) [7]

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


 
Johnmen   (2003-10-15 10:21) [8]

>Izyum © (15.10.03 10:13)

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

>Andrey V.

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


 
Izyum   (2003-10-15 10:24) [9]


> 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;


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


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

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


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

>Izyum © (15.10.03 10:24)

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


 
Izyum   (2003-10-15 10:36) [12]


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

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


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

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

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


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

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

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


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

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


 
Johnmen   (2003-10-15 12:12) [16]

>Andrey V. © (15.10.03 11:46)

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


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

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


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


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

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


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

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



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

Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.051 c
4-42221
Pank
2003-09-01 12:46
2003.11.13
действительно поверх всех окон


3-40891
Fuelfire
2003-10-20 12:12
2003.11.13
Обновление грида после закрытия формы


6-41855
Yot
2003-09-10 13:11
2003.11.13
Client_Server


1-41319
RinK
2003-10-30 21:06
2003.11.13
Как выбрать определенный компонент?


14-42050
Denis_Ac
2003-09-25 06:50
2003.11.13
Красноярцы ---->





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский