anchor.diff:      procedure OnValueListEditorValidateEntry(sender: TObject; aCol, aRow: Integer; const OldValue: string; var NewValue: String);
       function OnGetValue (const aCol, aRow : integer; var aNewDisplayValue : string; var aNewActualValue: variant): boolean;
       function OnValueListEditorClearValue (const aCol, aRow: integer): boolean;
  +    procedure OnClickClearValue(Sender: TObject);
       function ComposeCaption (const aCaption : string; const aMandatory : boolean): string;
       function GetValueFromMemo (const aName : string; const aTrimValue : boolean) : string;
       procedure CheckDate (const aOldStringValue : string; var aNewStringValue : string; var aActualValue : variant);
  
positive.code:     FValueListEditor.Canvas.Font.Style := FValueListEditor.Canvas.Font.Style + [fsBold];
      if MultiEditMode and (aRow > 0) then
      begin
        if not (FLinesByRowIndex.Find(aRow) as TEditorLine).Changed then
          FValueListEditor.Canvas.Font.Color:= clGray
        else
  
negative.code:   FValueListEditor.EditorMode:= true;
  end;
  
  procedure TmEditingPanel.SetMultiEditMode(AValue: boolean);
  var
    tmpPanel : TPanel;
  begin
    if FMultiEditMode=AValue then Exit;
    FMultiEditMode:=AValue;
    if FMultiEditMode then
    begin
      if not Assigned(FClearValuesPanel) then
      begin
        FClearValuesPanel := TPanel.Create(FRootPanel);
        FClearValuesPanel.Parent := FRootPanel;
        FClearValuesPanel.BevelInner:= bvNone;
        FClearValuesPanel.BevelOuter:= bvNone;
        FRootPanel.PanelCollection.AddControl(FClearValuesPanel);
        tmpPanel := TPanel.Create(FClearValuesPanel);
        tmpPanel.Parent := FClearValuesPanel;
        tmpPanel.Align:= alTop;
        tmpPanel.BevelInner:= bvNone;
        tmpPanel.BevelOuter:= bvNone;
        tmpPanel.Height:= FValueListEditor.DefaultRowHeight;
        tmpPanel.Caption:= SMultiEditClearValues;
        tmpPanel.Font.Style:=[fsBold];
        tmpPanel.BorderWidth:= 1;
        tmpPanel.BorderStyle:=bsSingle;
      end;
      if not Assigned(FClearValuesList) then
      begin
        FClearValuesList := TCheckListBox.Create(FClearValuesPanel);
        FClearValuesList.Parent := FClearValuesPanel;
        FClearValuesList.Align:= alClient;
        FClearValuesList.OnClickCheck:= Self.OnClickClearValue;
      end;
    end
    else
    begin
      if Assigned(FClearValuesPanel) then
        FClearValuesPanel.Visible:= false;
    end;
  end;
  
  function TmEditingPanel.CheckMandatoryLines(var aMissingValues: string): boolean;
  var
    i : integer;
  