TcxGrid

1) 如何让“Drag a column here to group by that column”不显示
     解决:点击cxGrid1上的cxGrid1DBTableView1
     在cxGrid1DBTableView1->optionsview->groupbybox:=false即可  
     注:OptionsView里面有很多属性可能经常要用,比如:ColumnAutoWith,Navigator等等,慢慢琢磨吧:)
*************************************************************************************************
2) GroupPanel上面的英文[Drag a column header to group by that column]怎么可以改成中文?
   procedure TForm1.cxGrid1DBTableView1CustomDrawPartBackground(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridCellViewInfo; var ADone: Boolean);
     var
      FBound: TRect;
     begin
       AViewInfo.Text:='动态设置 GroupBox 的显示内容';
       FBound := AViewInfo.Bounds;
       ACanvas.FillRect(FBound);
     end;
**************************************************************************************
3) 导出Grid中的数据
    procedure TForm3.Button1Click(Sender: TObject);
     var
        SaveDialog: TSaveDialog;
     begin
       SaveDialog:=TSaveDialog.Create(nil); //一个保存对话框
      with SaveDialog do
         begin
             Filter := 'xls|*.xls|html|*.html|xml|*.xml|text|.txt'; //文件类型
              if Execute then  //execute打开对话框
             begin
                   case SaveDialog.FilterIndex of
                 1: ExportGridToExcel(FileName, cxgrd2);
                 2: ExportGridToHTML(FileName, cxgrd2);
                 3: ExportGridToXML(FileName, cxgrd2);
                 4: ExportGridToText(FileName, cxgrd2);
                   end;
                 end;
      end;
       SaveDialog.Free;
      ShowMessage('导出成功!');
      end;
**************************************************************************************
4)如何改变列的颜色?
var
 AFirstColumnStyle: TcxStyle;

procedure TForm1.FormCreate(Sender: TObject);
begin
 //列颜色
 AFirstColumnStyle := TcxStyle.Create(Self);
 AFirstColumnStyle.Color := clAqua;
 AFirstColumnStyle.TextColor := clBlue;
 cxGrid1TableView1.Columns[1].Styles.Content := AFirstColumnStyle;
end;
*************************************************************************************
5)怎样使鼠标移动时,相应的单元格里的文字变色?
var
 FTrackItem: TcxCustomGridTableItem;
 FTrackRec: TcxCustomGridRecord;

procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
 Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
 AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
 if (AViewInfo.GridRecord = FTrackRec) and (AViewInfo.Item = FTrackItem) then
 begin
   ACanvas.Font.Color := clred;   //红色字体
   ACanvas.Font.Style := [fsUnderline];//带下划线
 end;
end;

procedure TForm1.cxGrid1DBTableView1MouseMove(Sender: TObject;
 Shift: TShiftState; X, Y: Integer);
var
 AHitTest: TcxCustomGridHitTest;
 ATrackItem: TcxCustomGridTableItem;
 ATrackRec: TcxCustomGridRecord;
begin
 ATrackItem := FTrackItem;
 ATrackRec := FTrackRec;

 AHitTest := (Sender as TcxGridSite).GridView.ViewInfo.GetHitTest(X, Y);
 if AHitTest is TcxGridRecordCellHitTest then
 begin
   FTrackItem := TcxGridRecordCellHitTest(AHitTest).Item;
   FTrackRec := TcxGridRecordCellHitTest(AHitTest).GridRecord;
 end
 else
 begin
   FTrackItem := nil;
   FTrackRec := nil;
 end;

 if (ATrackItem <> FTrackItem) or (ATrackRec <> FTrackRec) then
 begin
   // Invalidate old cell
   if ATrackRec <> nil then
     ATrackRec.Invalidate(ATrackItem);
   // Invalidate new cell
   if FTrackRec <> nil then
     FTrackRec.Invalidate(FTrackItem);
 end;
end;

猜你喜欢

转载自blog.csdn.net/baidu_37534986/article/details/83857509
今日推荐