Главная страница
    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.061 c
6-1217494301
dime_veyron
2008-07-31 12:51
2010.08.27
Версия Windows через локальную сеть


2-1267595287
allrussia
2010-03-03 08:48
2010.08.27
Перекодировка русского текста DOS+ANSI в ANSI


15-1265069211
Кто б сомневался
2010-02-02 03:06
2010.08.27
Законы общества


2-1265871705
Amir
2010-02-11 10:01
2010.08.27
Не отображаются визуальные компоненты формы


2-1274136222
yagluboko
2010-05-18 02:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский