急急急!怎样使控件的某个属性为下拉菜单,而又不用枚举类型.(100分)

  • 主题发起人 主题发起人 boyi_cj
  • 开始时间 开始时间
B

boyi_cj

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位,我在写一个控件,从Label继承
要想获得dataset中的所有字段名称,赋予一个属性fields,
让用户可以选择其中的一个.应怎么办?该属性为一个下拉框,但又不能用枚举.
类似DB元件的Datafield,但又不需要Datasource
 
做个“属性编辑器”
 
属性编辑器只能显示对话框呀,能否显示下拉式的选项呢
象datafield
 
能不能详细一点呢,谢谢
 
先读到某个结构体里头吧。
 
出现对话框的是“组件编辑器”,是用“属性编辑器”,
procedure Register;
begin
RegisterComponents('苏源高科', [TSYDBNavigator]);
RegisterPropertyEditor(TypeInfo(string),TSYDBNavigator,'UpdateTable',TUpdateProperty);
end;
function TUpdateProperty.GetAttributes:TPropertyAttributes;
begin
Result:=[paDialog,paValueList,paSortList];
end;

procedure TUpdateProperty.GetValues(Proc:TGetStrProc);
var
i:integer;
begin
if not FLink.Active then Exit;
session.GetTableNames(TDBDataSet(FLink.DataSet).databasename,'',false,false,tbList);
if FLink.DataSet is TTable then Proc(TTable(FLink.DataSet).Tablename)
else if FLink.DataSet is TQuery then begin
for i:=0 to tbList.Count-1 do
if Pos(Lowercase(TbList),LowerCase(TQuery(FLink.DataSet).Sql.Text))>0 then
Proc(TbList);
end;
end;


TUpdateProperty=class(TStringProperty)
public
function GetAttributes:TpropertyAttributes;override;
procedure GetValues(Proc:TGetStrProc);override;
end;
 
后退
顶部