2015年11月

首页2015年11月
24
Nov
0

CXGRID一些取值方法

if AViewInfo.RecordViewInfo.GridRecord.Values[Sender.ItemCount-1] then

ACanvas.Canvas.Font.Color := clBlue

else

ACanvas.Canvas.Font.Color := clBlack;

cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号
cxGrid1DBTableView1.Controller.FocusedRow 当前行
cxGrid1DBTableView1.Controller.FocusedColumn 当前列
cxGrid1DBTableView1.Controller.FocusedColumnIndex 当前列号
cxGrid1DBTableView1.Controller.EditingItem 当前编辑中的单元框
cxGrid1DBTableView1.Controller.EditingController.Edit 当前的编辑框
在编辑状态下可以这样取当前单元格的值:
if cxGrid1DBTableView1.Controller.FocusedColumn.Editing then
ShowMessage(cxGrid1DBTableView1.Controller.EditingController.Edit.EditingValue)
else
cxGrid1DBTableView1.DataController.GetValue(cxGrid1DBTableView1.DataController.FocusedRecordIndex,
cxGrid1DBTableView1.Controller.FocusedItemIndex);
非编辑状态下可以这样取得单元格内的值:
OnCellClick事件代码:
procedure TForm1.cxGrid1DBTableView1CellClick(

Sender:   TcxCustomGridTableView; 
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; 
AShift: TShiftState;   var   AHandled: Boolean); 

var

v : Variant; 

begin

v := ACellViewInfo.Value; 

end;

取列值
i := cxGrid1DBBandedTableView1.Controller.FocusedColumn.Index;
cxGrid1DBBandedTableView1.DataController.GetValue(cxGrid1DBBandedTableView1.Controller.SelectedRows[0].RecordIndex,i);
cxGrid1DBTableView1.DataController.Values[行,列]
取得焦点
cxGrid1DBTableView1.Columns[5].FocusWithSelection;
cxGrid1DBTableView1.Columns[4].Focused:=True;
得到当前点击的单元格的值
uses Clipbrd;
OnCellClick事件代码:
procedure TForm1.cxGrid1DBTableView1CellClick(

Sender:   TcxCustomGridTableView;
ACellViewInfo:   TcxGridTableDataCellViewInfo;   AButton:   TMouseButton;
AShift:   TShiftState;   var   AHandled:   Boolean);

var

v   :   Variant;

begin

v   :=     ACellViewInfo.Value;//值
Clipboard.AsText     :=     vartostr(v);//保存到clipboard

end;
cxGrid的DBTableView的名称为dgtv1

  1. 返回选中的行数 gdtv1.DataController.GetSelectedCount;
  2. 返回选中行的索引: gdtv1.DataController.GetSelectedRowIndex(0) , 表示第一个选中行的索引
  3. 返回选中行的数据;
    var

I, J:Integer;
begin
for I:=0 to gdtv1.DataController.GetSelectedCount - 1 do begin

 J := gdtv1.DataController.GetSelectedRowIndex(I);
 ShowMessage(VarToStr(gdtv1.DataController.GetValue(J, 0))); //选择中行的第列的值

end;
end;

  1. 获取cxGrid排序规则
    const

OrderArray: array[soNone..soDescending] of string = ('None', 'ASC', 'DESC');
var
I: integer;
S, OrderStr: string;
begin
for I := 0 to gdtv1.SortedItemCount - 1 do begin

 if S <> '' then
   S := S + ', ';
 OrderStr := OrderStr + gdtv1.SortedItems[I].DataBinding.DefaultCaption + ' ';
 OrderStr := OrderStr + OrderArray[TcxDataSortOrder(gdtv1.SortedItems[I].SortOrder)];
 S := S + OrderStr;

end;
ShowMessage('ORDER BY ' + S);

5.获

20
Nov
0

普通窗体变半透明窗体

var
HandleStyle:LongInt;
hRegion: HRGN;
begin
HandleStyle := GetWindowLong(Handle,GWL_EXSTYLE);
HandleStyle := HandleStyle or WS_EX_LAYERED;
SetWindowLong(Handle,GWL_EXSTYLE,HandleStyle);
SetLayeredWindowAttributes(Handle,0,215,LWA_ALPHA);
// hRegion := CreateRoundRectRgn(0, 0, self.Width, self.Height, 30, 30);
// SetWindowRgn(Handle, hRegion, True);
SetWindowPos( Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW);

19
Nov
0

cxGrid创建列和设置列的Properties

动态设置和访问cxgrid列的Properties

设置:

cxGrid1DBTableView1Column.PropertiesClass = TcxTextEditProperties;
cxGrid1DBTableView1Column.PropertiesClass = TcxDateEditProperties;
cxGrid1DBTableView1Column.PropertiesClass = TcxCalcEditProperties;
cxGrid1DBTableView1Column.PropertiesClass = TcxCheckboxProperties;

访问:
cxGrid1DBTableView1Column.Properties as TcxTextEditProperties
cxGrid1DBTableView1Column.Properties as TcxDateEditProperties;
cxGrid1DBTableView1Column.Properties as TcxCalcEditProperties;

创建字段
grdPrinterStepConfig.ClearItems;
for i := 0 to grdPrinterStepConfig.DataController.DataSet.FieldCount - 1 do
begin

Self.grdPrinterStepConfig.CreateColumn;
Self.grdPrinterStepConfig.columns[i].DataBinding.FieldName := Self.grdPrinterStepConfig.DataController.DataSet.Fields[i].DisplayName;
Self.grdPrinterStepConfig.Columns[i].Caption := Self.grdPrinterStepConfig.DataController.DataSet.Fields[i].DisplayName;

end;