取的Combobox中的所选择项的值

来源:互联网 发布:淘宝售后投诉 编辑:程序博客网 时间:2024/06/04 19:46
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

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

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

TItemEx=class(TObject)      caption:string;   public      StringValue:string;end;

//使用adoquery中的值填充Comboboxfunction 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)

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击