Back to Devexpress

TdxListViewCompareEvent Type

vcl-dxlistview-923895a7.md

latest2.6 KB
Original Source

TdxListViewCompareEvent Type

The item comparison procedural type.

Declaration

delphi
TdxListViewCompareEvent = procedure(Sender: TdxCustomListView; AItem1: TdxListItem; AItem2: TdxListItem; AData: TdxNativeInt; var ACompare: Integer) of object;

Parameters

NameTypeDescription
SenderTdxCustomListView

The List View control that raised an item comparison event.

| | AItem1 | TdxListItem |

The first target list item.

| | AItem2 | TdxListItem |

The second target list item.

| | AData | TdxNativeInt |

Specifies a pointer to additional data for the custom comparison routine.

| | ACompare | Integer |

A result of the comparison.

|

Remarks

The following table explains which ACompare parameter values correspond to specific comparison results:

ValueDescription
A negative integer valueAItem1 is positioned before AItem2.
0AItem1 is positioned before AItem2.
A positive integer valueAItem is positioned after AItem2.

The following OnCompare event handler sorts items by captions in the specified sort order if the control displays columns:

delphi
procedure TForm1.dxListViewControl1Compare(Sender: TdxCustomListView; AItem1,
  AItem2: TdxListItem; AData: Integer; var ACompare: Integer);
begin
  ACompare := CompareStr(AItem1.Caption, AItem2.Caption);
  if (Sender.ViewStyle = TdxListViewStyle.Report) and (Sender.Columns.Count <> 0) then
    if Sender.Columns[0].SortOrder = soDescending then
      ACompare := ACompare * -1;
end;
cpp
void __fastcall TForm1::dxListViewControl1Compare(TdxCustomListView *Sender, TdxListItem *AItem1, 
  TdxListItem *AItem2, NativeInt AData, int &ACompare);
{
  ACompare = AItem1->Caption > AItem2->Caption;
  if (Sender->ViewStyle == TdxListViewStyle::Report && Sender->Columns->Count != 0)
    if (Sender->Columns->Items[0]->SortOrder == soDescending)
      ACompare = ACompare * -1;
}

The List View’s OnCompare event references the TdxListViewCompareEvent type.

See Also

dxListView Unit