WEB开发网
开发学院软件开发Delphi TComboBox下拉取值 阅读

TComboBox下拉取值

 2006-02-04 13:53:55 来源:WEB开发网   
核心提示: 新建一个类,存储我们需要的数据:TItemEx=class(TObject)public caption:string; StringValue:string;end;//使用adoquery中的值填充comboboxfunction FillInComBoBoxWithAdoQuery(objAdoQuery:
 

新建一个类,存储我们需要的数据:

TItemEx=class(TObject)

public

    caption:string;
    StringValue:string;
end;

//使用adoquery中的值填充combobox
function FillInComBoBoxWithAdoQuery(objAdoQuery:TAdoQuery;objComBoBox:TComboBox;sql:string;captionFieldName:string;
  valueFieldName:string;noAsFirst:boolean):boolean;

//当noAsFirst为true是,combobox的第一项是'无'
var
  objItemEx:TItemEx;
begin
  objComBoBox.Clear;
  objComBoBox.ItemIndex:=-1;
  if noAsFirst
  then begin
   objItemEx:=TItemEx.Create;
   objItemEx.caption:='无';
   objItemEx.StringValue:='';
   objComBoBox.Items.AddObject(objItemEx.caption,objItemEx);
   objComBoBox.ItemIndex:=0;
  end;
  objAdoQuery.Close;
  objAdoQuery.SQL.Clear;
  objAdoQuery.SQL.Add(sql);
  objAdoQuery.Open;
  objAdoQuery.First;
  while not objAdoQuery.Eof do
  begin
   objItemEx:=TItemEx.Create;
   objItemEx.caption:=objAdoQuery.FieldByName(captionFieldName).AsString;
   objItemEx.StringValue:=objAdoQuery.FieldByName(valueFieldName).AsString;
   objComBoBox.Items.AddObject(objItemEx.caption,objItemEx);
   objAdoQuery.Next;
  end;
  objAdoQuery.close;
  result:=true;
end;

//取得comboobx中被选定向的制
function GetComBoBoxSelectedStringValue(objComBoBox:TComboBox):string;
var
  objItemEx:TItemEx;
begin
  if (objComBoBox.ItemIndex>-1 )
  then begin
    objItemEx:=(objComBoBox.Items.Objects[objComBoBox.ItemIndex] as  TItemEx);
    result:=objItemEx.StringValue;
  end
  else begin
    result:='';
  end;
end;

listbox的解决方法与此类似。


Tags:TComboBox 下拉 取值

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接