anchor.diff:    Name:= '';
     Index:= 0;
     ActualValue:= Null;
  -  OldActualValue:= Null;
  -  EditorExecuted:= false;
  -  OldDisplayValue.SetNull;
     Changed:= false;
  -  EditorExecuted:= false;
   end;
   
   destructor TEditorLine.Destroy;
  
positive.code:   if curLine.Configuration.ReadOnly <> roAllowEditing then
      exit;
  
    curLine.OldDisplayValue.SetValue(FValueListEditor.Cells[aCol, aRow]);
  
    if curLine.Configuration.EditorKind = ekCalendar then
    begin
      calendarFrm := TmCalendarDialog.Create;
      try
        if FValueListEditor.Cells[aCol, aRow] <> '' then
        begin
          try
            calendarFrm.Date := StrToDate(FValueListEditor.Cells[aCol, aRow]);
          except
            // ignored
          end;
        end;
        if calendarFrm.Execute then
        begin
          str := DateToStr(calendarFrm.Date);
          FValueListEditor.Cells[aCol, aRow] := str;
          aNewDisplayValue := str;
          aNewActualValue := calendarFrm.Date;
          curLine.OldActualValue:= curLine.ActualValue;
          curLine.ActualValue:= calendarFrm.Date;
          Result := true;
        end;
  
negative.code:     Changed: boolean;
      Configuration: TmEditorLineConfiguration;
      ActualValue : variant;
      //OldActualValue : variant;
      //OldDisplayValue : TNullableStringRecord;
      //EditorExecuted : boolean;
    public
      constructor Create;
      destructor Destroy; override;
  