我的表单上有两个cxgrid(cxGrid1和cxGrid2)。 两者都有NewItemRow.Visible。
现在,我想从cxGrid2中删除NewItemRow。 致电:
root@mat-K50AB:~# php -a
Interactive mode enabled
php > ls
php > exec("/usr/bin/pdfimages -png /path/pdf/file.pdf /tmp/savefile/")
php > shell_exec("/usr/bin/pdfimages -png /path/pdf/file.pdf /tmp/savefile/")
php >
从cxGrid1中删除NewItemRow,而不是从我想要的那个(cxGrid2)中删除。 我该如何将它应用于cxGrid2?
答案 0 :(得分:2)
从您的q和您对读者的回复中可以看出这一点。评论表格声明中有不妥之处。一个新创建的表单以cxGrids以通常的方式放置在它上面(通过在Component Palette上选择cxGrid并将它的两个实例放到表单上)不会出现编译问题,也不会出现您描述的异常行为。尝试一下,你会看到我的意思。
下面是一个项目的代码和.DFM摘录,它有两个TcxGrids,一个有可见的 NewItemRow,一个没有。这个示例项目是针对D7使用cxGrid的v.15,即 支持D7的最高版本号。我已经在D7中完成了,因为你没有说出你正在使用的Delphi版本。
我故意在代码中设置了许多组件属性等,所以你 可以看到发生了什么以及如何完成。
如果您尝试它,您会发现它编译时没有您提到的错误消息 在您的一条评论中,并按预期行事。因此我只能假设有一些 您在命名或声明组件和/或代码中的错误,我们的读者可以在您的q中包含的内容中看到错误。
我建议您解决问题的最好方法是从空白表单开始,然后将2个cxGrids放到其上。保存并查看生成的DFM并确认2cxGrids及其子组件(cxGridDBTableView和cxGridLevel)是否正确和明确命名,然后在该DFM和项目之间执行DIFF找出他们分歧的地方。
type
TForm1 = class(TForm)
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGrid2DBTableView1: TcxGridDBTableView;
cxGrid2Level1: TcxGridLevel;
cxGrid2: TcxGrid;
CDS1: TClientDataSet;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
DBGrid1: TDBGrid;
CDS1ID: TIntegerField;
CDS1Name: TStringField;
procedure FormCreate(Sender: TObject);
private
public
end;
[...]
procedure TForm1.FormCreate(Sender: TObject);
var
Field : TField;
begin
Field := TIntegerField.Create(Self);
Field.FieldName := 'ID';
Field.FieldKind := fkData;
Field.DataSet := CDS1;
Field := TStringField.Create(Self);
Field.FieldName := 'Name';
Field.Size := 20;
Field.FieldKind := fkData;
Field.DataSet := CDS1;
CDS1.CreateDataSet;
CDS1.InsertRecord([1, 'One']);
DBNavigator1.DataSource := DataSource1;
DBNavigator2.DataSource := DataSource1;
cxGrid1DBTableView1.DataController.DataSource := DataSource1;
cxGrid2DBTableView1.DataController.DataSource := DataSource1;
// The following creates default columns for the grids
cxGrid1DBTableView1.DataController.CreateAllItems;
cxGrid2DBTableView1.DataController.CreateAllItems;
cxGrid1DBTableView1.NewItemRow.Visible:= True;
cxGrid2DBTableView1.NewItemRow.Visible:= False;
end;
DFM提取
object Form1: TForm1
[...]
object cxGrid1: TcxGrid
Left = 24
Top = 16
Width = 250
Height = 200
TabOrder = 0
object cxGrid1DBTableView1: TcxGridDBTableView
Navigator.Buttons.CustomButtons = <>
DataController.DataSource = DataSource1
DataController.KeyFieldNames = 'ID'
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
end
object cxGrid1Level1: TcxGridLevel
GridView = cxGrid1DBTableView1
end
end
object cxGrid2: TcxGrid
Left = 32
Top = 280
Width = 250
Height = 200
TabOrder = 1
object cxGrid2DBTableView1: TcxGridDBTableView
Navigator.Buttons.CustomButtons = <>
DataController.DataSource = DataSource1
DataController.KeyFieldNames = 'ID'
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
end
object cxGrid2Level1: TcxGridLevel
GridView = cxGrid2DBTableView1
end
end
object DBNavigator1: TDBNavigator
Left = 40
Top = 232
Width = 240
Height = 25
TabOrder = 2
end
object DBNavigator2: TDBNavigator
Left = 40
Top = 496
Width = 240
Height = 25
TabOrder = 3
end
object CDS1: TClientDataSet
Aggregates = <>
Params = <>
end
object DataSource1: TDataSource
DataSet = CDS1
end