Главная страница
    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.027 c
3-41099
dimablind
2003-10-23 00:05
2003.11.13
Сортировка в TQuery


14-42058
ananimious
2003-10-15 21:03
2003.11.13
Как защититься от спама?


1-41247
Pomashok
2003-10-31 22:33
2003.11.13
Хинт


3-40927
Sulimxar
2003-10-12 23:21
2003.11.13
Перенос преложений БД на другие машины


4-42229
LG
2003-08-31 20:13
2003.11.13
Как создать окно(панель) типа как TaskBar





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский