anchor.diff:  type
     TEditorLine = class
     public
  -    Name : String;
  -    EditorKind : TmEditingFrameEditorKind;
  -    Index : integer;
  -    ReadOnly : boolean;
  +    Name: String;
  +    Caption: String;
  +    EditorKind: TmEditingFrameEditorKind;
  +    Index: integer;
  +    ReadOnly: boolean;
  +    Mandatory: boolean;
     end;
   
   { TmEditingFrame }
  
positive.code:   end;
  end;
  
  procedure TmEditingFrame.AddLine(const aName: string; const aCaption: string; const aDefaultValue: string; const aEditorKind : TmEditingFrameEditorKind; const aReadOnly : boolean = false);
  var
    tmp : TEditorLine;
  begin
  
negative.code:   FLinesByName.Add(aName, tmp);
    tmp.EditorKind:= aEditorKind;
    tmp.Name := aName;
    tmp.Caption := aCaption;
    tmp.Index:= FValueListEditor.InsertRow(ComposeCaption(aCaption, aMandatory), aDefaultValue, true);
    tmp.ReadOnly:= aReadOnly;
    tmp.Mandatory:= aMandatory;
    FLinesByIndex.Add(tmp.Index + 1, tmp);
    FValueListEditor.ItemProps[tmp.Index].ReadOnly:= tmp.ReadOnly;
    if (not tmp.ReadOnly) and ((aEditorKind = ekDate) or (aEditorKind = ekLookupFloat) or (aEditorKind = ekLookupInteger) or (aEditorKind = ekLookupText)) then
  