初学者帮助的最佳地点是 Devex 的网站,例如https://www.devexpress.com/Support/Center
我想你已经注意到了,TcxGrid(现在是 Quantum Grid)的问题在于它过多的属性、嵌套属性等等。他们的演示展示了网格可以做什么,但是通过对象检查器找到使它们工作的设置的方法有点像噩梦。当然,当您开始在 OI 中玩耍时,您所做的某些事情会阻止它工作,并且回溯您的步骤可能非常困难。
所以,我认为一个很好的起点是一个完全在代码中创建网格的项目,这样除了你在代码中明确设置的内容之外,一切都得到默认值。正如您所看到的,实际上您几乎不需要做任何事情来获得一个简单的、数据绑定的、在基本级别上工作的网格。
尝试这个
type
TForm1 = class(TForm)
CDS1: TClientDataSet;
CDS1ID: TAutoIncField;
CDS1Marked: TBooleanField;
CDS1Value: TStringField;
DS1: TDataSource;
DBNavigator1: TDBNavigator;
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
procedure FormCreate(Sender: TObject);
public
cxGrid : TcxGrid;
cxLevel : TcxGridLevel;
cxView : TcxGridDBTableView;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
CDS1.IndexFieldNames := 'ID';
CDS1.CreateDataSet;
for i := 1 to 5 do begin
CDS1.Insert;
CDS1.FieldByName('Marked').AsBoolean := Odd(i);
CDs1.FieldByName('Value').AsString := 'Value ' + IntToStr(i);
CDS1.Post;
end;
CDS1.First;
cxGrid := TcxGrid.Create(Self);
cxGrid.Parent := Self;
cxGrid.Width := 250;
cxLevel := cxGrid.Levels.Add;
cxLevel.Name := 'Firstlevel';
cxView := cxGrid.CreateView(TcxGridDBTableView) as TcxGridDBTableView;
cxView.Name := 'ATableView';
cxLevel.GridView := cxView;
cxView.DataController.DataSource := DS1;
cxView.DataController.CreateAllItems;
end;