Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

КРИЗИС ЖАНРА или Настройка ширины колонок подчиненной таблицы [D6, IB6.x]


Alexander Vasjuk ©   (2002-02-25 16:47:00) 

Братья и Сестры!

При попытке сохранить/восстановить измененную пользователем ширину колонок грида столкнулся с чудесным свойством грида подчиненной таблицы (или запроса) при скроллинге грида главной таблицы восстанавливать стандартную ширину (зависящую от типов полей). Причем неважно, каким образом связаны таблицы (SlaveDataSet.DataSource := MasterDataSource или MasterDataSource.OnDataChange := MasterDataSourceDataChange...), в любом случае подчиненный набор переоткрывается, и как следствие, переинициализируются колонки грида.
В статическом случае можно задать колонки на этапе разработки и без проблем менять/сохранять/устанавливать их ширину. Но как быть, если запрос формируеся во время выполнения программы?


alexandervasjuk   (2002-02-28 11:48:00) [1]

kserg@ukr.net,
видимость колонок инвариантна их положению.
при Visible := False их Index и Columns.Count не меняются.


Reindeer Moss Eater   (2002-02-28 11:05:00) [2]

Не менее уважаемый kserg
Мой пример не требует статических колонок грида, поэтому у меня нет невидимых колонок в гриде.

>alexahdervasjuk
совершенно верно :)


alexandervasjuk   (2002-02-28 11:01:00) [3]

а какая тогда разница?

я так понял, основная фишка - назначать индекса от меньших к большим


kserg@ukr.net   (2002-02-28 10:55:00) [4]

>Reindeer Moss Eater
Уважаемый, я правильно понял индекс колонки определяет её визуальный порядок в GRIde?
А если колонка не видима, то её индекс???


Reindeer Moss Eater   (2002-02-27 16:57:00) [5]

Перед закрытием датасета: цикл по колонкам грида и запись в ини или реестр индекс колонки = имя поля колонки грида
после открытия датасета: чтение сохраненных значений и изменение свойста Index у TField"ов


Alexander Vasjuk   (2002-02-27 14:31:00) [6]

Пока что я восстанавливаю только ширину и заголовки.

Есть у TColumns методы SaveToFile и LoadFromFile.
Попробуй. (Я не пробовал, у меня динамические запросы)


kserg@ukr.net   (2002-02-26 17:36:00) [7]

> Alexander Vasjuk
Уважаемый, поделись опытом, как ты восстанавливаешь колонки GRIDa (точнее их порядок), если юзер изменил их порядок следования?


Alexander Vasjuk   (2002-02-26 12:40:00) [8]

DBGr.Columns.RebuildColumns;
Помогло!


Igor_   (2002-02-26 12:29:00) [9]

Может заново добавить все колонки в DBGrid ?
DBGr.Columns.Clear;
DBGr.Columns.Add;
и т.д. ..


Alexander Vasjuk   (2002-02-26 12:04:00) [10]

Про это и речь идет. (правда про FieldName это ты загнул)
В одиночной или главной таблице(запросе) это катит. А подчиненная при своем переоткрытии (при скроллинге главной) начисто переинициализирует грид. Какие будут еще соображения у продвинутой общественности?


Igor_   (2002-02-26 09:30:00) [11]

Устанавливай ширину колонок во время выполнения программы.

DBGr.Columns[i].Title.Caption:="


Наверх

Титульная страница Поиск, карта сайта Написать письмо