2016-07-15 1 views
0

두 가지 cxgrid가 내 양식 (cxGrid1 및 cxGrid2)에 있습니다. 둘 다 NewItemRow.Visible을가집니다.두 개의 cxGrids : cxGridDBTableView1은 하나의 그리드에만 적용됩니까?

이제 CxGrid2에서 NewItemRow를 제거하고 싶습니다. 콜링 :

cxGridDBTableView1.NewItemRow.Visible:=False; 

내가 원하는 일 (cxGrid2)에서 cxGrid1에서 NewItemRow을 제거하고 없습니다. 어떻게 이것을 cxGrid2에 적용 할 수 있습니까?

+1

FWIW를 추출 : 당신은 [DevEx 지원] 봤어 (https://www.devexpress.com/Support/Center/Question/List/1)? IMHO는 DevEx 문제에 가장 적합한 곳입니다. –

+2

두 시간에 세 가지 질문이 있으십니까? 아마 두 벤더에 연락하거나 튜토리얼이나 문서를 읽어야 할 것입니다. 확실히 여기에 게시하기 전에 먼저 답을 찾는 데 충분한 노력을 기울이는 것으로 보이지 않습니다. –

+1

코드 "cxGridDBTableView1.NewItemRow.Visible"에 실수가있는 것으로 보입니다. 그리드의 이름이 cxGrid1 및 cxGrid2 인 경우 TableViews는 cxGrid ** 1 ** DBTableView1 및 cxGrid ** 2 ** DBTableView1이됩니다. 둘 다 "cxGridDBTableView1"이라고 불리지 않습니다. – MartynA

답변

2

귀하의 질문에 대한 답변과 독자의 의견을 통해 분명히 귀하의 양식에 오류가 있음을 분명히 알 수 있습니다. (컴포넌트 팔레트에서 cxGrid를 선택하고 두 개의 인스턴스를 양식에 놓음으로써) 일반적인 방법으로 cxGrid가 배치 된 새로 작성된 양식은 컴파일 문제 또는 사용자가 설명하는 비정상적인 동작을 나타내지 않습니다. 그것을 시도하면 내 뜻을 볼 수 있습니다.

다음은 두 개의 TcxGrids가있는 프로젝트의 .DFM 추출물입니다. 하나는 보이는 NewItemRow이고, 하나는없는 것입니다. 이 예제 프로젝트는 dx7을 지원하는버전 번호 인 cxGrid의 v.15를 사용하는 D7 용입니다. 나는 델파이 버전을 사용하고 있다고 말하지 않았기 때문에 D7에서 해냈습니다.

나는 코드에서 할 수있는대로 구성 요소 속성 등을 의도적으로 설정 했으므로 에서 무슨 일이 일어나고 어떻게 수행되는지 확인할 수 있습니다.

시도해 보면 이라는 오류 메시지가 나타나지 않고 컴파일되고 의도 한대로 동작하는 것을 알 수 있습니다. 따라서 귀하의 이름 지정 또는 구성 요소 선언 및/또는 독자가 귀하의 q에 포함시킨 내용에서 볼 수없는 코드에 일부 오류가 있다고 가정 할 수 있습니다.

문제를 해결하는 것이 가장 좋은 방법은 빈 양식으로 시작하여 2 개의 cxGrid를 그 위에 놓는 것입니다. 결과 DFM을 저장하고 확인한 다음 2cxGrid 및 해당 하위 구성 요소 (cxGridDBTableView 및 cxGridLevel)가 올바르게 이라는 이름을 가지고 있는지 확인한 다음 해당 DFM과 프로젝트의 DIFM간에 발산 한 위치를 식별하려면 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 
+0

열이 있어야합니다 .... 네 말이 맞아요 ... 나는보기의 명명 규칙을 보지 못했습니다. – user763539

+0

다행 이군. – MartynA

관련 문제