function TDBFlatEdit.GetDataField: string;
begin
  Result := FDataLink.FieldName;
end;
...
procedure TDBFlatEdit.SetDataField(const Value: string);
begin
  if not (csDesigning in ComponentState) then
    ResetMaxLength;
  FDataLink.FieldName := Value;
end;
怎么是从FDataLink.fieldname读出来 最后又回到FdataLink.FieldName内呢
而我用showMessage(FDataLink.fieldname)显示FDataLink.fieldname内什么也没有。 不解还有 componentstate是不是检测控件的状态的?FDataLink: TFieldDataLink
这是个什么类型? 是干什么的

解决方案 »

  1.   

    function TDBFlatEdit.GetDataField: string;
    begin
      Result := FDataLink.FieldName;
    end;
    ...
    procedure TDBFlatEdit.SetDataField(const Value: string);
    begin
      if not (csDesigning in ComponentState) then
        ResetMaxLength;
      FDataLink.FieldName := Value;
    end;
    一个是得到值,一个同设置值。
    componentstate是一个状态BOOL标记。
    FDataLink.fieldname可能是一个保护型成员
      

  2.   

    TFieldDataLink是指数据链接,
    你给这个控件设上了数据链接以后再用ShowMessage就有了,
    csDesigning是表示处于设计期。
      

  3.   

    Get和Set属性是为了保护对象中的一些私有变量而采取的访问与操作机制,通过Set和Get来访问变量可以防止程序对变量的直接操作....
    TFieldDataLink是一个指向Tfield对象的连接具体的请查看Delphi帮助
      

  4.   

    多了解一下VCL组件开发呵呵,会很玩哦
      

  5.   

    谢谢。
    关节是:在这条语句中
    function TDBFlatEdit.GetDataField: string;
    begin
      Result := FDataLink.FieldName;
    end;
    我用Showmessage(FDataLink.FieldName)没有值
    可是我连到数据库中了 还有怎样通过TFieldDataLink获得全部的字段名 
    谢谢了