anchor.diff:    tmp.EditorKind:= aEditorKind;
     tmp.Name := aName;
     tmp.Index:= FValueListEditor.InsertRow(aCaption, aDefaultValue, true);
  +  tmp.ReadOnly:= (aEditorKind = ekReadOnly);
     FLinesByIndex.Add(tmp.Index + 1, tmp);
  -  if (aEditorKind = ekDate) or (aEditorKind = ekLookup) then
  -    FValueListEditor.ItemProps[tmp.Index].EditStyle:=esEllipsis
  -  else if (aEditorKind= ekReadOnly) then
  -    FValueListEditor.ItemProps[tmp.Index].ReadOnly:= true;
  +  FValueListEditor.ItemProps[tmp.Index].ReadOnly:= tmp.ReadOnly;
  +  if (not tmp.ReadOnly) and ((aEditorKind = ekDate) or (aEditorKind = ekLookup)) then
  +    FValueListEditor.ItemProps[tmp.Index].EditStyle:=esEllipsis;
   end;
   
   procedure TmEditingFrame.AddMemo(const aName: string; const aCaption: string;const aDefaultValue: string; const aMemoHeightPercent : double);
  
positive.code:   tmpFieldsList : TStringList;
  begin
    curLine := FLinesByIndex.Find(aRow) as TEditorLine;
  
    if curLine.EditorKind = ekDate then
    begin
  
negative.code:     Name : String;
      EditorKind : TmEditingFrameEditorKind;
      Index : integer;
      ReadOnly : boolean;
    end;
  
  { TmEditingFrame }
  