取的Combobox中的所选择项的值

原创 2004年07月21日 16:00:00

有时候我们需要根据combobox(listbox同样)的选择项的值进行处理,但是在delphi中的Combobox的item是一个TStrings类型的对象,我们无法象c#或java中那样从combobox的选项类中继承,创建一个我们需要的类来完成任务。但是仔细研究delphi的combobox对象发现了以下的解决方法:

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

TItemEx=class(TObject)      caption:string;
   public

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

www.sinoprise.com

C#之WinForm基础 得到comboBox的选择的内容

慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 1、UI 2、代码 using System; using Sy...
  • yushaopu
  • yushaopu
  • 2016年09月17日 21:30
  • 5369

点击ComboBox控件的一个选项另一个ComboBox的内容发生相应变化

如有两个ComboBox,希望点击第一个的选中项时,另外一个的内容作出相应的变化。 方法一: using System; using System.Collections.Generic; using...
  • u010771437
  • u010771437
  • 2014年12月22日 14:59
  • 2065

jquery获取动态添加的combobox已选中的text

本人easyui菜鸟,调试了一早上,
  • u011930420
  • u011930420
  • 2014年07月03日 14:36
  • 1401

Ext2.0本地模式动态修改combobox选择项

  • 2007年10月07日 17:24
  • 1KB
  • 下载

带选择项CheckBox的下拉列表ComboBox控件

  • 2011年10月16日 16:18
  • 5KB
  • 下载

ComboBox和ListBox添加项及设置默认选择项

此文章针对 C#(WinForm) Web控件DropDownList和WinForm控件ComboBox机制不一样。 ComboBox没有对应的ListItem需要自己写一个: u...
  • hi_dzj
  • hi_dzj
  • 2012年01月02日 16:58
  • 3666

解决QML开发中ComboBox中一个已选择项没有清除的问题

最近使用QML开发一个项目,需要使用ComboBox进行显示,当进行一个操作时,需要向ComboBox添加一个元素,当进行另外一个操作时,需要清除ComboBox里面的元素。但是在操作的过程中,出现了...
  • jiangcaiyang123
  • jiangcaiyang123
  • 2014年09月18日 14:17
  • 2580

C#(WinForm)ComboBox和ListBox添加项及设置默认选择项

Web控件DropDownList和WinForm控件ComboBox机制不一样。 ComboBox没有对应的ListItem需要自己写一个: using System; using System...
  • chanyinhelv
  • chanyinhelv
  • 2013年03月12日 15:17
  • 1265

【Activity】多个Activity带返回值跳转_startActivityForResult_【场景】选择项利用Activity实现,不用popuwindow的情况

开始CSDN体验之旅,督促一下自己!哼哼... 一般我们做地址选择框,或者自定义时间选择器时,都需要获取到选择的值,然后填充到编辑框里面,这样用户才知道自己选择了什么,同时也可能需要传递给后台。笔者认...
  • lanyachuanshu
  • lanyachuanshu
  • 2016年08月10日 15:41
  • 264

Js获取下拉框当前选择项的文本和值

现在有一个Id为AreaId的下拉框,要获取它当前选择项的文本和值有以下方法: span class="red">* span> 地    &nb...
  • qq_37272886
  • qq_37272886
  • 2018年01月04日 18:49
  • 23
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:取的Combobox中的所选择项的值
举报原因:
原因补充:

(最多只允许输入30个字)