Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

обновление информации в гриде   Найти похожие ветки 

 
Delphist   (2010-03-18 09:44) [0]

Информацию в гриде обновляю так:
adoquery1.active:=false;
adoquery1.active:=true;

другие способы не работали.
Не устраивает, что все настройки грида, которые были только что сделаны, сбрасываются в дефолт (ширина столбцов например). Выделение текущей строки грида также исчезает ну и т. п.
Как более правильно обновлять?


 
oldman ©   (2010-03-18 10:02) [1]

update?


 
Sergey13 ©   (2010-03-18 10:06) [2]

> [0] Delphist   (18.03.10 09:44)

> в гриде
В каком?

> другие способы не работали
Какие?

> что все настройки грида
Например какие?

> Как более правильно
Насколько более?


 
Delphist   (2010-03-18 10:45) [3]

На update вообще ноль внимания.

Грид - DBGridEh

> > другие способы не работали
> Какие?


ADOQuery1.refresh в частности. Или это не то?


> > Как более правильно
> Насколько более?

Ну хотя бы чтоб сброса состояния грида не было.


 
Delphist   (2010-03-18 10:57) [4]

Если делать DBGridEh1.Refresh то тоже не помогает.


 
Sergey13 ©   (2010-03-18 11:02) [5]

> [3] Delphist   (18.03.10 10:45)

> сброса состояния грида

Что это?


 
Delphist   (2010-03-18 11:08) [6]

Ну в смысле ширина столбцов, текущее положение ползунка вертикальной полосы прокрутки, выделенные строки и прочее.


 
oldman ©   (2010-03-18 11:10) [7]


> текущее положение ползунка вертикальной полосы прокрутки,
>  выделенные строки и прочее.


А вот это после обновления информации действительно должно обнулиться.


 
Delphist   (2010-03-18 11:15) [8]

Ну а ширину надо куда-то записывать предварительно, а потом считывать? TMemInifile подойдет для этого?

И все-таки, какие есть способы кроме
adoquery1.active:=false;
adoquery1.active:=true;
?


 
Медвежонок Пятачок ©   (2010-03-18 11:18) [9]

решение в лоб - создать колонки грида в дизайн-тайм
/* ширина не будет меняться с рефрешем датасета */


 
Delphist   (2010-03-18 11:26) [10]

А подойдет этот способ, если грид в разные моменты времени отображает разные таблицы с разным кол-вом столбцов?


 
Медвежонок Пятачок ©   (2010-03-18 11:27) [11]

по-русски же сказано:
"решение в лоб"


 
Медвежонок Пятачок ©   (2010-03-18 11:32) [12]

в разные моменты времени отображает разные таблицы с разным кол-вом столбцов?

в этом случае поможет работа с экземплярами TFieldDefs датасета.
Перед открытием набора обновляем список филдефсов, затем создаем поля устанавливая нужные атрибуты ширины каждого поля.


 
Sergey13 ©   (2010-03-18 11:37) [13]

Странно, но у меня после Close/Open ширина колонок не меняется.


 
Медвежонок Пятачок ©   (2010-03-18 12:02) [14]

меняется меняется.
они же у него динамические


 
Anatoly Podgoretsky ©   (2010-03-18 12:12) [15]

> Медвежонок Пятачок  (18.03.2010 11:18:09)  [9]

Колонки созданые в дизайн тайм, точно также могут менять размеры и в рантайм, сохранять значения то переоткрытия, потом восстанавливать.


 
Anatoly Podgoretsky ©   (2010-03-18 12:13) [16]

> Delphist  (18.03.2010 11:26:10)  [10]

Подойдет.


 
Sergey13 ©   (2010-03-18 12:17) [17]

> [14] Медвежонок Пятачок ©   (18.03.10 12:02)

Точно, блин, не заметил [10] Delphist   (18.03.10 11:26)

Автор, и какого постоянства ты тогда хочешь? И какой в нем смысл?


 
Delphist   (2010-03-18 12:37) [18]

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


 
Плохиш ©   (2010-03-18 12:44) [19]


> Delphist   (18.03.10 12:37) [18]

Программирование - это не кинуть на форму грид и удивляться, что оно не работет так, как вы напредставляли.
Наймите программиста.


 
brother ©   (2010-03-18 12:47) [20]

> и каждый раз после обновления ее снова вручную раздвигать...

перед обновлением запоминай размеры и восстанавливай из после обновления... в чем проблемма?


 
Delphist   (2010-03-18 12:47) [21]


> Anatoly Podgoretsky ©   (18.03.10 12:13) [16]
>
> > Delphist  (18.03.2010 11:26:10)  [10]
>
> Подойдет.

Это meminifile? Вот кстати с ним не очень получается.
f_ini:=TMemInifile.Create("cols.ini");
DBGridEh1.SaveGridLayout(f_ini);

Ошибка: there is no overloaded version of "SaveGridLayout" that can be called with this arguments


 
Sergey13 ©   (2010-03-18 13:04) [22]

> [18] Delphist   (18.03.10 12:37)
> Смысл - что пользователь раздвигает колонку грида, т. к.
> в нее не влазит вся строка, потом обновляет

... и на месте раздвинутой колонки появляется другое поле другой таблицы из одного символа.

> т. к. в нее не влазит вся строка
В ЕХГриде, кстати, такие данные прекрасно показываются хинтом.

Если вариантов "разные таблицы с разным кол-вом столбцов" разумное ограниченное количество, можно пойти по пути создания в дзайне разных датасетов на все варианты и гридов к ним и управления в рантайме видимостью этих гридов. В дизайне конечно каша будет на форме, но в принципе достаточно жизнеспособный вариант.
Ну или в
> [12] Медвежонок Пятачок ©   (18.03.10 11:32)
универсальный способ.


 
Delphist   (2010-03-18 13:22) [23]

Всем спасибо! Разрешилось все проще:
setlength(raz,DBGridEh1.Columns.Count);
for i:=DBGridEh1.Columns.Count-1 downto 0 do raz[i]:=DBGridEh1.Columns.Items[i].Width;
...
for i:=DBGridEh1.Columns.Count-1 downto 0 do
DBGridEh1.Columns.Items[i].Width:=raz[i];



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

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.068 c
2-1275672222
DROWSY
2010-06-04 21:23
2010.08.27
Post на TIBDataSet.


10-1167226388
Priest
2006-12-27 16:33
2010.08.27
Собственная реализация IDispatch


4-1237347702
Дмитрий
2009-03-18 06:41
2010.08.27
Стиль окна


15-1264366744
Nic
2010-01-24 23:59
2010.08.27
Схема Беллмана


15-1269174373
GDI+
2010-03-21 15:26
2010.08.27
Лучшая СУБД для научных проектов.





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