unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
dxmdaset, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxNavigator;
type
TForm1 = class(TForm)
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
dxMemData1: TdxMemData;
DataSource1: TDataSource;
dxMemData1Name: TStringField;
dxMemData1Number: TStringField;
cxGrid1DBTableView1RecId: TcxGridDBColumn;
cxGrid1DBTableView1Name: TcxGridDBColumn;
cxGrid1DBTableView1Number: TcxGridDBColumn;
procedure cxGrid1DBTableView1DataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1,
ARecordIndex2, AItemIndex: Integer; const V1, V2: Variant;
var Compare: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
cxGridDBDataDefinitions, cxVariants;
{$R *.dfm}
procedure TForm1.cxGrid1DBTableView1DataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
var
AItem: TcxCustomGridTableItem;
begin
AItem := TcxGridDBDataController(ADataController).GetItemByFieldName('Number');
if AItem.Index = AItemIndex then
Compare := VarCompare(VarAsType(V1, varInteger), VarAsType(V2, varInteger))
else
Compare := VarCompare(VarToStr(V1), VarToStr(V2));
end;
end.