Как динамически добавить колонки в cxGrid

RAVen42

Турист
Регистрация
1 Сен 2006
Сообщения
10
Реакции
0
Credits
10
Доброго времени суток!
Товарисчи программисты помогите разобратся с cxGrid. Есть SQL запрос который в завсисимости от условия возвращает разное количество столбцев. Нао чтоб при каждом запуске запроса. грид очищался и в него и в нём создавались поля возвращаемые запросом.
 

#ib

Местный
Регистрация
10 Май 2005
Сообщения
12
Реакции
3
Credits
22
Вопрос старый, но может кому-то пригодится
Код:
var XCol  :TcxGridDBColumn;
begin
[B]//Удалить старые столбцы[/B]
for i:=pred(TcxGridDBTableView(ADBGrid.Levels.Items[0].GridView).ColumnCount) downto 0 do begin
  TcxGridDBTableView(ADBGrid.Levels.Items[0].GridView).Columns[i].Destroy;
end;

[B]//Добавление колонок[/B]
for i:=0 to pred(ATable.FieldCount) do begin
  XCol:=TcxGridDBTableView(ADBGrid.Levels.Items[0].GridView).CreateColumn;
  XCol.DataBinding.FieldName:=ATable.FieldName;
  XCol.Caption:=ATable.FieldName;
  //XCol.Styles.Content:=stlGrid_Gray; //стиль форматирования
end;
end;
 

MAFyodorov

Турист
Регистрация
29 Дек 2006
Сообщения
6
Реакции
2
Credits
12
Вообще-то Destroy не стоит вызывать, достаточно и Free. И кажется у коллекции колонок есть метод Clear, чтобы не писать самому очистку.
Да и доступ осуществлять напрямую к View грида, а не идти через Level.