comboBox里如何得到值? comboBox里显示的一种形式,但我要用户选择以后,得到的不是comboBox的text,而是对应的值。如显示的是“第一人名”,但值是一个ID号,如何对应起来呢?用itemindex不行。请高手指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能你们没明白我的意思,如我有ID:01010003,对应的文字是:张三,要通过选ComboBox得到01010003怎么做?我肯定不能用index,那是有序的数字,也不能用text,那只能得到“张三”,应该怎么做呢?ComboBox本身好象没有这种对应关系,html都有啊。呵呵 dblookupcombobox设置正确的listsource和datasource 用ComboBox1.Items.AddObject();具体使用方法你在网上搜索一下或看Delphi的帮助就知道啦. konhon(优华) 的方法可行,但代码并不简单.建议使用第三方控件.Developer express 的控件包.非常简单. 在combobox的onchange事件里写代码,对表按照人名进行搜索,得到对应的ID 要简单,也可以这么做,就不用麻烦了。你的combobox的长度在界面中可以只显示“张三李四”的长度,而大于这个长度的字符就不会看到,但还存在的,如:“张三李四 | 0108940245 ” 然后你就可以字符串处理得到后面的ID了,我以前也这么做过的,不错的 。很简单,只判断TEXT就可以了 :) 自己定一个存储的结构unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdTrivialFTPBase, ExtCtrls, DB, DBTables;type TForm1 = class(TForm) Button1: TButton; ComboBox1: TComboBox; procedure ComboBox1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; MyStructure = Class Id:string; Value:string; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ComboBox1Change(Sender: TObject);var a:string;begin a:=(ComboBox1.Items.Objects[ComboBox1.ItemIndex] as MyStructure).Value; showmessage(a);end;procedure TForm1.FormCreate(Sender: TObject);var AMystructure:MyStructure;begin AMystructure:=MyStructure.Create; AMystructure.Id := 'aa'; AMystructure.Value := 'aaValue'; ComboBox1.Items.AddObject('aa',AMystructure); AMystructure:=MyStructure.Create; AMystructure.Id := 'bb'; AMystructure.Value := 'bbValue'; ComboBox1.Items.AddObject('bb',AMystructure);end;end. 同意kaguo(▲) Guozhi(★★★★★) while not 条件 do begin combobox1.Items.Add("内容") ; dm.adoquery2.Next; end; 用dblookupcombobox,在数据控件里加入lookup字段,设置对应的参数就行了可以通过子查询来实现在combobox里的人物名字选择 如果是数据库的保存,可以选择用dblookupcombobox,这个控件显示的是名称,保存的是名称的编号(代码) 用消息函数CB_SETITEMDATA使用方法,可以查看下面这个MSDN的链接,很详细http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/listboxreference/listboxmessages/lb_setitemdata.asp因为我以前问过一个listbox类似的用法,所以特别把所学供大家分享 获取值CB_GETITEMDATACB_SETITEMDATA //用设置每个item的一个32位的程序值CB_SETITEMDATA //用于获取........................ 感谢各位,各位高手说得都很有道理,我一般的用法也是 张三|01010022 这样的处理方法,也用过写代码去查找,但总感觉美观和方便不能并重。感觉html里的下拉列表就有很好的处理方法,又简单又方便,delphi应该来说比html强大不知多少倍,却感觉在这个小地方不能很顺手,所以发此帖,感谢各位高手们的热情讨论,俺也好好学习了一番,呵呵! 可采用2个comboBox同时写2个字段通过comboBox的items.strings[itemindex] 用TStringList,当月添加combobox是就把Id添加到定义StringList中取数时,应从定义的StringList中取出 【求救】EhLib3.3中DbGridEh用Ctrl+F调出查找框报错! listView怎么判断是否有记录啊??? 生成窗体常出现错误:Invalid pointer operation 干吗我的问题没人理会!!郁闷死了 如何得取指定SQL server数据库(test)的数据空间及日志空间? 请教Delphi中字符串的查找 怎样用回车实现在DBGrid中向右移动,就象按Tab键一样? 求图标 如何在一个按钮b1的click事件调用另一个按钮b2的click事件 进程被死锁后如何处理? 为什么我用Redom取的随机数总是同样的数据呢? 小弟现在手上做一‘行业’仓库管理系统,急求帮助!
我肯定不能用index,那是有序的数字,也不能用text,那只能得到“张三”,应该怎么做呢?ComboBox本身好象没有这种对应关系,html都有啊。呵呵
具体使用方法你在网上搜索一下或看Delphi的帮助就知道啦.
你的combobox的长度在界面中可以只显示“张三李四”的长度,而大于这个长度的字符就不会看到,但还存在的,如:“张三李四 | 0108940245 ” 然后你就可以字符串处理得到后面的ID了,我以前也这么做过的,不错的 。很简单,只判断TEXT就可以了 :)
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdTrivialFTPBase, ExtCtrls, DB, DBTables;type
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
procedure ComboBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; MyStructure = Class
Id:string;
Value:string;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ComboBox1Change(Sender: TObject);
var a:string;
begin
a:=(ComboBox1.Items.Objects[ComboBox1.ItemIndex] as MyStructure).Value;
showmessage(a);
end;procedure TForm1.FormCreate(Sender: TObject);
var
AMystructure:MyStructure;
begin
AMystructure:=MyStructure.Create;
AMystructure.Id := 'aa';
AMystructure.Value := 'aaValue';
ComboBox1.Items.AddObject('aa',AMystructure);
AMystructure:=MyStructure.Create;
AMystructure.Id := 'bb';
AMystructure.Value := 'bbValue';
ComboBox1.Items.AddObject('bb',AMystructure);
end;end.
begin combobox1.Items.Add("内容") ;
dm.adoquery2.Next;
end;
可以通过子查询来实现在combobox里的人物名字选择
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/listboxreference/listboxmessages/lb_setitemdata.asp因为我以前问过一个listbox类似的用法,所以特别把所学供大家分享
CB_SETITEMDATA //用于获取........................
取数时,应从定义的StringList中取出