取的Combobox中的所选择项的值
2008-04-09 04:26:41来源:互联网 阅读 ()
有时候我们需要根据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)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash