取的Combobox中的所选择项的值

2016-02-19 12:45 111 1 收藏

下面是个超简单的取的Combobox中的所选择项的值教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - 编程语言 】

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  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)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1601839.html

延伸阅读
procedure TForm1.FormCreate(Sender: TObject); var num1,num2:integer; reg:Tregistry; nums1:Tstringlist; nums2:Tstringlist; I:integer; begin list.Clear; nums1:=Tstringlist.Create; nums2:=Tstringlist.Create; reg:=Tregistry.create; reg.Rootkey:=HKEY_LOCAL_MACHINE; ...
declare @name varchar(50) exec sp_executesql N'select @value=姓名 from people where 人员编号=''0001''',N'@value varchar(50) output',@name output select @name
在使用DropDown类型的ComboBox时,如果使用者输入非ComboBox中列出的值,那么ComboBox的GetCurSel()的值是CB_ERR,相关的GetLBText()和GetLBTextLen()因为没有index也就无法工作。 在DDX时,可以把ComboBox和CString对应起来,采用它的原理,就可以自己来得到或设置DropDown ComboBox的文字了。 //得到ComboBox的文字 void...
标签: Web开发
Afrikaans: af Albanian: sq Basque: eu Belarusian: be Bulgarian: bg Catalan: ca Chinese (Simplified): zh-cn Chinese (Traditional): zh-tw Croatian: hr Czech: cs Danish: da Dutch: nl Dutch (Belgium): nl-be Dutch (Netherlands): nl-nl English: en ...
Create function fun_getPY ( @str nvarchar(4000) ) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY='' while len(@str)0 begin set @word=left(@str,1) --如果非汉字字符,返回原字符 set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901 ...

经验教程

617

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部