我在开发中自己做了一个数据感知控件TDataTree有如下属性Dataset:Tdataset,Fieldname:string,控件创建中会自动调用各个属性的set方法,但总是先调Fieldname的set,而我在Filedname的set方法中要使用FDataset变量,所以想让setDataset先被调用,请问该如何写?

解决方案 »

  1.   

    Filedname的set方法中
    if Assigned(FDataset) then
      ....
      

  2.   

    按照这个方法,会导致Fieldname无法传入吧
      

  3.   

    在setDataset中也可以对FieldName进行处理啊?
      

  4.   

    procedure SetFieldName(Value:string);这个value无法取到,所以无法在SetDataset中调SetFilename
      

  5.   

    SetFieldName时不对FFieldName赋值吗?
      

  6.   

    setFieldname时检查
      if FDataset.FindField(Trim(Value))<>nil then
      begin
        FNameField := Trim(Value);
      end else showmessage('NameField字段'''+value+'''不存在!');
    如果想在这里调用setDataset过程中的那个value的话也取不到.怎么办?
      

  7.   

    setFieldNameif (FDataSet=NIL) OR (FDataset.FindField(Trim(Value))<>nil) then
    begin 
      FNameField := Trim(Value);
    end;setDataSetFDataSet:= Value;
    if (FDataSet<>NIL) AND (FDataset.FindField(Trim(Value))=nil) then
      FNameField := '';
      

  8.   

    setDataSetFDataSet:= Value;
    if (FDataSet<>NIL) AND (FDataset.FindField(Trim(Value))=nil) then
                            ︿︿︿    
      FNameField := '';
    setDataset 中,这个Value是一个TDataSet,而且此时的setFieldName里面的Value是得不到的,有哪位大哥有TDataLink使用方法和Delphi属性编辑器用法的介绍的中文文章么?我找到了大致的方向但是进行不下去
      

  9.   

    你的问题没有答案。因文你的用到Dataset和FieldName的操作本来应该写成顺序无关的。在设置属性的Set方法中进行操作的时候应该检查所用到的其他变量的合法性。