Delphi-TComboBox下拉取值

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

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的解决方法与此类似。

 
 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值