Delphi中如果要在DBCombobox里边加入选项,应该将代码写在什么地方?代码怎么写? 如果使用Combobox呢? 15
2个回答
展开全部
DBCombobox是在combobox组件的基础上派生的一个数据感知组件,只要你正确设置了它的datasource(数据源组件)属性,并且指定了datafield(字段名)它就会自动写入数据集中指定字段的所有值,无需写任何代码。但是,它可能不会滤除重复值,比如,你用它来显示进货表中货物名称,同一物品可能会反复进货,那么这此重复的物品名称,都会出现在DBCombobox的选项中。是否这样,我也记不清,因为我从来不用它。
Combobox组件,一般用于用户输入数据操作界面,让用户输入某个反复出现而且重复频率很高的字段值,比如进货数据中的物品名称,一个公司经营的物品总是有限的,如果超过百十来个商品,这样可以给物品进行分类,比如机电类,纺织品类,这样就可以减少物品名称Combobox中的选项。如果物品名称Combobox显示的选项还是很多,这样还可以对分类再进行分类。
何时加载物品名称Combobox选项的问题,如果你不对物品名称进行分类,那么应该在打开物品进货数据录入界面时加载,如果有分类Combobox时,应该先加载分类Combobox选项,当用户在分类Combobox中选择一个选项时,会产生一个Combobox组件更新事件,如果没有第二分类,即可利用此更新事件,加载物品名称Combobox的选项,反之应加载第二分类Combobox选项。DELPHI代码没有那种代码可以在什么写,应该写在什么地方的规定,完全根据用户的需求决定。
如何加载选项
//加载选项数据准备
fr_sjmk.bcgjz_tab.Close;
fr_sjmk.bcgjz_tab.CommandText:='';
fr_sjmk.bcgjz_tab.CommandText:='select id,gjzsy,gjzmc,byz from gjzb where gjzsy = ''czyxm'' and czyfl =''收费员''';
fr_sjmk.bcgjz_tab.Open;
//是否加载判断
if fr_sjmk.bcgjz_tab.RecordCount <>0 then
begin
ComboBox24.Items.Clear;//清除原有选项
fr_sjmk.bcgjz_tab.First;//移动数据表指针到数据集第一条记录
for i:=0 to fr_sjmk.bcgjz_tab.RecordCount -1 do
begin//加载开始
ComboBox24.Items.Add(fr_sjmk.bcgjz_tab.FieldValues['gjzmc']);
fr_sjmk.bcgjz_tab.Next;//移动数据集指针到下一条,
end;
end;
ComboBox24.ItemIndex :=-1;//使 ComboBox24.text 是空的
fr_sjmk.bcgjz_tab.Close;
当然也可以这样加载选项
ComboBox24.Items.Add(‘鸡蛋');
ComboBox24.Items.Add(‘牛肉');
ComboBox24.Items.Add(‘黄瓜');
ComboBox24.Items.Add(‘黄豆');
......................
想加多少就加多少。
Combobox组件,一般用于用户输入数据操作界面,让用户输入某个反复出现而且重复频率很高的字段值,比如进货数据中的物品名称,一个公司经营的物品总是有限的,如果超过百十来个商品,这样可以给物品进行分类,比如机电类,纺织品类,这样就可以减少物品名称Combobox中的选项。如果物品名称Combobox显示的选项还是很多,这样还可以对分类再进行分类。
何时加载物品名称Combobox选项的问题,如果你不对物品名称进行分类,那么应该在打开物品进货数据录入界面时加载,如果有分类Combobox时,应该先加载分类Combobox选项,当用户在分类Combobox中选择一个选项时,会产生一个Combobox组件更新事件,如果没有第二分类,即可利用此更新事件,加载物品名称Combobox的选项,反之应加载第二分类Combobox选项。DELPHI代码没有那种代码可以在什么写,应该写在什么地方的规定,完全根据用户的需求决定。
如何加载选项
//加载选项数据准备
fr_sjmk.bcgjz_tab.Close;
fr_sjmk.bcgjz_tab.CommandText:='';
fr_sjmk.bcgjz_tab.CommandText:='select id,gjzsy,gjzmc,byz from gjzb where gjzsy = ''czyxm'' and czyfl =''收费员''';
fr_sjmk.bcgjz_tab.Open;
//是否加载判断
if fr_sjmk.bcgjz_tab.RecordCount <>0 then
begin
ComboBox24.Items.Clear;//清除原有选项
fr_sjmk.bcgjz_tab.First;//移动数据表指针到数据集第一条记录
for i:=0 to fr_sjmk.bcgjz_tab.RecordCount -1 do
begin//加载开始
ComboBox24.Items.Add(fr_sjmk.bcgjz_tab.FieldValues['gjzmc']);
fr_sjmk.bcgjz_tab.Next;//移动数据集指针到下一条,
end;
end;
ComboBox24.ItemIndex :=-1;//使 ComboBox24.text 是空的
fr_sjmk.bcgjz_tab.Close;
当然也可以这样加载选项
ComboBox24.Items.Add(‘鸡蛋');
ComboBox24.Items.Add(‘牛肉');
ComboBox24.Items.Add(‘黄瓜');
ComboBox24.Items.Add(‘黄豆');
......................
想加多少就加多少。
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询