各位哥哥能帮忙注释一下最好
procedure TGridModeDemoMainForm.tvDataControllerFilterGetValueList(
  Sender: TcxFilterCriteria; AItemIndex: Integer;
  AValueList: TcxDataFilterValueList);  //定义参数
var
  AColumn: TcxGridDBColumn;
  ADataSet: TDataSet;
  AProperties: TcxLookupComboBoxProperties;
  AValue: Variant;
  AIsLookupColumn: Boolean;
begin
  ADataSet := TcxGridDBTableView(Grid.FocusedView).DataController.DataSet; //给dataset赋值
  AColumn := TcxGridDBTableView(Grid.FocusedView).Columns[AItemIndex]; //给列赋值
  AIsLookupColumn := AColumn.PropertiesClass = TcxLookupComboBoxProperties;
  with GridModeDemoDataDM do  //引用数据窗体
    try
      Screen.Cursor := crHourGlass;
      qryHelper.SQL.Clear;
      qryHelper.SQL.Add(
        'Select DISTINCT ' + AColumn.DataBinding.FieldName + ' From ' +
        GetTableNameByDataSet(ADataSet));
      qryHelper.SQL.Add(
        GetSQLCondition(TcxGridDBTableView(Grid.FocusedView), False));
      qryHelper.Open;
      qryHelper.First;
      while not qryHelper.Eof do
      begin
        AValue := qryHelper.Fields[0].Value;
        if AIsLookupColumn then
        begin
          AProperties := TcxLookupComboBoxProperties(AColumn.GetProperties);
          ADataSet := AProperties.ListSource.DataSet;
          AValue := ADataSet.Lookup(
            AProperties.KeyFieldNames,AValue, AProperties.ListFieldNames);
        end;
        if VarIsNull(AValue) then Exit;
        AValueList.Add(fviValue, qryHelper.Fields[0].Value, AValue, False);
        qryHelper.Next;
      end;
      qryHelper.Close;
    finally
      Screen.Cursor := crDefault;
    end;
end;      //实在看不懂.