目前有个需求:
数据库中有图书列表,图书有Id和名称两个属性,需要动态从数据库中读取,然后以列表的形式显示供用户选择图书,下拉框中text为图书名称,value需要为图书Id,请问Delphi中是否存在或者那个组件的功能类似于Html中的Select,同时请给出使用的范例,不甚感激!
数据库中有图书列表,图书有Id和名称两个属性,需要动态从数据库中读取,然后以列表的形式显示供用户选择图书,下拉框中text为图书名称,value需要为图书Id,请问Delphi中是否存在或者那个组件的功能类似于Html中的Select,同时请给出使用的范例,不甚感激!
解决方案 »
- 远程服务器sql的连接问题
- 资源文件的问题,真的找不到哪儿错,郁闷!
- 一个很简单的异常处理,请高手帮忙解决,谢谢!
- 一个关于窗体的简单问题。(50分)
- (在线等待.....初程问题)1.如何调用ListBox的双击事件!2.operdioge控件如何能进行多选,早回早得!
- 在DELPHI嵌入SQL语句动态创建数据库
- WIN32 API+Book
- 大家都是中国人,快救救我!!!!!!!!!!!
- 关于SQLServer的小问题???
- 就是我在indytcpserver的 onExecute 中动态创建一个TADOConnection问题就是程序大约运行12天左右
- 知道控件名称怎么找到控件?
- 那位大虾知道fbplus 它的dataset 字段列表里的displaylabel改变成中文,为什么不能修改数据
CxLookupCOMBOBOX,在Express Edit4上,很方便,设置Property属性后将ListSource,KeyFieldname,ListFieldName设置即可.
用CxLookupCOMBOBOX.EditValue获得其ID
2.用普通控件ComboBox
ComboBox1.Items.AddObject(..,..)
具体怎么用自己查一下帮助~
//CUSTTYPE为一个字典表,Name为名称,TypeID为类型号
procedure TForm1.FormCreate(Sender: TObject);
begin
with QryCustType do
begin
Close;
sql.Clear;
sql.Text:='select * from CUSTTYPE';
open;
while not Eof do
begin
ComboBox1.Items.AddObject(fieldbyname('name').AsString,Pointer(fieldbyname('custtypeid').AsInteger));
next;
end;
end;
end;显示Value
procedure TForm1.Button2Click(Sender: TObject);
var
A_Value:integer;
begin
A_Value:=integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
Showmessage(inttostr(A_Value));
end;
myrecord=record
id:integer;
value:string;
定义一个动态数组
var
darray:array of myrecord
然后在程序初始化中
查询出图书数量num, 定义数组长度SetLength(darray,num);
给你的这个书的id和value分别赋给这个记录
for(i=1;i<num;i++){
darray[i].value=value;//这里是从数据库中查询的value
darray[i].id=id;;//这里是从数据库中查询的id
}
,combobox显示的就是id或者value,在他的onselect事件中:
for(i=1;i<num;i++){
if darray[i].value=strtoint(combobox.text) then
xxxx:=darray[i].id;
}