大多数组件的string类型属性出现在DELPHI的属性编辑框内是以文本框的方式进行编辑的!
但是也有部分string类型却可以用下拉列表框来编辑,比如:TDBEdit的DataField属性!
有哪位知道实现的方法?

解决方案 »

  1.   

    type
      TMyProperty = class(TStringProperty)
      public
        procedure GetValues(Proc: TGetStrProc); override;
      end;procedure TMyProperty.GetValues(Proc: TGetStrProc);
    var
      I: Integer;
      Values: TStringList;
    begin
      Values := TStringList.Create;
      try
        .... 给 Values 赋值 ...
        for I := 0 to Values.Count - 1 do Proc(Values[I]);
      finally
        Values.Free;
      end;
    end;procedure Register;
    begin
      ...  
      RegisterPropertyEditor(TypeInfo(string), TMyClass, 'PropertyName', TMyProperty);
    end;