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

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

Сортировка Column в DBGrid [D6]


aldapooh ©   (2003-09-11 15:09:00) 

Добрый день! пожалуйста помогите...
Нужно колнки в гриде отсортировать по некоторому индексу
однако у меня ничего не получается
посоветуйте как это можно сделать красиво и удобно...

в данный момент у меня так вот НЕ работает как надо
for i:= 0 to Grid.ColCount - 1 do
Grid.Columns[i].Index:= MyIndex
где myindex указывает нужный мне порядок

где я ламерю!?
Спасибо.


Reindeer Moss Eater   (2003-09-11 15:57:00) [1]

Нужно иметь список имен полей, отсортированный по индексам полей.
В цикле присваивать экземплярам TField, найденным по имени индексы из списка.


DenK_vrtz   (2003-09-11 15:54:00) [2]

aldapooh, тебе Vlad © популярно объяснил, популярнее некуда!


Vlad   (2003-09-11 15:53:00) [3]

>aldapooh (11.09.03 15:40) [10]
DBGrid1.Columns[0].Field:=DataSet.FieldByName("NAME1");
DBGrid1.Columns[1].Field:=DataSet.FieldByName("NAME2");
DBGrid1.Columns[2].Field:=DataSet.FieldByName("NAME3");


aldapooh   (2003-09-11 15:45:00) [4]

> Mike Kouzmine © (11.09.03 15:44) [12]
что мне почитать? я читать люблю! только не знаю с какой книжки начать ;)


Mike Kouzmine   (2003-09-11 15:44:00) [5]

Ты б почитал бы что-нибудь. А то прям неудобно...


aldapooh   (2003-09-11 15:43:00) [6]

> stone © (11.09.03 15:40) [9]

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


stone   (2003-09-11 15:40:00) [7]

Вообще-то сортируются не колонки грида, а набор данных. Или я что-то не так понял?


aldapooh   (2003-09-11 15:40:00) [8]

>Vlad © (11.09.03 15:35) [7]
>В цикле делать нельзя.
>Как только ты первой колонке изменил индекс, то вторая (i+1) >будет иметь уже совершенно другой индекс. И вся твоя >сортировка пойдет лесом.
>Перечилсяй колонки вручную, попорядку каждой присваивая индекс.

Спасибо - но можно поподробнее... То есть как "перечисляй колонки вручную"???


Vlad   (2003-09-11 15:35:00) [9]

В цикле делать нельзя.
Как только ты первой колонке изменил индекс, то вторая (i+1) будет иметь уже совершенно другой индекс. И вся твоя сортировка пойдет лесом.
Перечилсяй колонки вручную, попорядку каждой присваивая индекс.


Mike Kouzmine   (2003-09-11 15:35:00) [10]

А MyIndex это кто?


aldapooh   (2003-09-11 15:30:00) [11]

for i:= 0 to Grid.ColCount - 1 do
Grid.Columns[i].Index:= MyIndex

это и етсь полный код процедуры SetColumnOrder
а не работает то что колонки отображаются не в том порядке как я указываю с помощью MyIndex

я просто не пойму что происходит когда я присваиваю новое значение ндексу колонки (все други сдвигаются или 2 меняются местами - я уже запарился)


Mike Kouzmine   (2003-09-11 15:26:00) [12]

for i:= 0 to Grid.ColCount - 1 do
if Grid.Columns[i].Field.Name = "Vasia" then Grid.Columns[i].Index:= 1
else if Grid.Columns[i].Field.Name = "Vasia1" then Grid.Columns[i].Index:= 2ж
Но так нельзя.


Johnmen   (2003-09-11 15:23:00) [13]

Полный код и как не работает ?


aldapooh   (2003-09-11 15:20:00) [14]

я использую TTable без persistent полей


ZEE   (2003-09-11 15:15:00) [15]

ты явно не туда залез
если для открытия таблицы ты пользуешь что-то типа TQuery/TADOQuery то сортировку делай прям в sql-запросе (ORDER BY), а ежели TTable - то не знаю...


Mike Kouzmine   (2003-09-11 15:14:00) [16]

Нужный мировой порядок?


Наверх

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