Главная страница
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.52 MB
Время: 0.064 c
15-1272952103
Phoenix
2010-05-04 09:48
2010.08.27
Как подерживать себя в работоспособном состоянии.


15-1265491802
Юрий
2010-02-07 00:30
2010.08.27
С днем рождения ! 7 февраля 2010 воскресенье


15-1272740317
adav84
2010-05-01 22:58
2010.08.27
может ли ATTiny13 делать FFT в realtime?


2-1267226371
Дима
2010-02-27 02:19
2010.08.27
Загрузка текст.файла по индексу ListBox.


3-1241011773
worldmen
2009-04-29 17:29
2010.08.27
Возвратить ID вставленной записи