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

RAVen42

Member
Joined
Sep 1, 2006
Messages
10
Reaction score
0
Age
42
Location
Кемерово
Доброго времени суток!
Товарисчи программисты помогите разобратся с cxGrid. Есть SQL запрос который в завсисимости от условия возвращает разное количество столбцев. Нао чтоб при каждом запуске запроса. грид очищался и в него и в нём создавались поля возвращаемые запросом.
 

#ib

Member
Joined
May 10, 2005
Messages
12
Reaction score
3
Age
47
Location
Kiev
Вопрос старый, но может кому-то пригодится
Code:
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

Member
Joined
Dec 29, 2006
Messages
6
Reaction score
2
Location
Россия
Вообще-то Destroy не стоит вызывать, достаточно и Free. И кажется у коллекции колонок есть метод Clear, чтобы не писать самому очистку.
Да и доступ осуществлять напрямую к View грида, а не идти через Level.
 
Top