combobox和listbox控件的使用(100分)

  • 主题发起人 主题发起人 hh200303
  • 开始时间 开始时间
H

hh200303

Unregistered / Unconfirmed
GUEST, unregistred user!
combobox和listbox控件结合起来,combobox下拉列表选一个选项,listbox中同时显示出与combobox中选项对应的二级选项。点击二级选项中的某项,edit中显示相关数据。另有一个按钮,点击后出现一个对话框,可以通过此对话框往combobox和listbox中添加选项,并同时添加对应的edit中的数据,所有数据都保存下来。
不知该如何做到?
谢谢!
 
combobox的change事件里做listbox的显示
listbox的鼠标单击事件里做edit中显示相关数据
另有一个按钮,点击后出现一个对话框,可以通过此对话框往combobox和listbox中添加选项 这个更简单 直接add
 
我想通过数据库做出来
 
通过数据库做出来那就用数据感知控件.
然后对相关字段的onValidate事件中写入相关代码。
 
用数据感知控件我能够很轻易的做出来,问题是我要用combobox和listbox做出这种效果。
 
你自己的逻辑已经很清楚了,在对应的单击事件中填写就可以了,动态添加对应的.txt内容就可以,仔细看看ListBox的事件应该不难。
 
楼主啊.要做你那样的DEMO的话,TREEVIES和CHECBOX就可以了.
 
为了界面美观,简约,我要用combobox和listbox.
我用两个adoquery两个datasource
adoquery1设置:1.connection string:access数据库(有2个数据表)
2.sql属性:select * from a1
3.active:true
datasource1:
dataset: adoquery1
adoquery2设置:1.connection string:access数据库(有2个数据表)
2.sql属性:select * from a2 where 材料类别=:材料类别
3.active:true
4.datasource:datasource1
datasource2:
dataset: adoquery2

部分代码:
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin

with ADOquery1do

begin

close;
SQL.Clear;
SQL.Add('select * from a2');
open;
end;

for i:=1 to ADOquery1.FieldCount-1do

begin

combobox1.Items.add(ADOquery1.Fields.FieldName);
ADOquery1.Next;
end;


procedure TForm1.ComboBox1Change(Sender: TObject);
var
str1:string;
begin

try
with ADOquery2do

begin

close;
SQL.clear;
SQL.Add('select * from a1');
open;
end;

repeat
str1:=ADOquery2.fieldbyname('材料名称').AsString;
listbox1.Items.Add(str1);
ADOquery2.next;
until
ADOquery2.Eof;
except
showmessage('读取数据失败!');
end;

end;


a1和a2通过字段"材料类别"建立联系。
combobox中选择一种材料类别后
listbox 中就出现对应的材料
点击某种材料后在edit中显示相应的数据,可以对combobxo、listbox、edit中的内容进行修改,保存在数据库中。
通过上述的方法运行结果不能让人满意。不知错误在哪?或许有更好的办法做到。
我刚学delphi 不久
学习delph数据库才一个星期,不明白的东西太多了。
希望高人不吝赐教!
拜谢!
 
后退
顶部