很棘手的问题,请高手指教 我的软件实现对项目信息的增删改,一个窗口中有20几条项目的信息,有些信息,比如党派,有专门的党派编码表,原来如果是群众,那项目表中存的编号就是01,如果改成中国共产党,项目表中存的编号就是02.现在问题是修改时,我原想用一个下拉列表,把党派编码表中的都列出来供选择,问题是更新数据库时,怎么实现把项目中党派更新成修改后的党派对应的编号,感觉实现起来这么困难,有什么实现方法?用其他控件也可以 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在下拉列表的onchange事件里重新加载一下就可以了从数据库里面读入你想要的数据,再重新加上去,记得要先把下拉列表里面的数据删了 在读数据到combobox的时候,做一个数组,下标就是combobox.itemindex,内容就是党派编号这样选择的时候党派编号就是你的array[combobox.itemindex] 本帖最后由 bdmh 于 2009-08-19 16:53:28 编辑 添加Objectvar str:string;begin str := '党派编码'; ComboBox1.Items.AddObject('党派',TObject(str));end;读的时候就是ComboBox1.Items.Objects[0] str := StrPas(PChar(ComboBox1.Items.Objects[0])); ShowMessage(str); 如果是在数据集上操作的话,建议你直接使用lookup字段。另外,最好去找一些第三方的控件,这种东西很多的,devexpress的就不错。 上面得到ComboBox1选中的项的objects有点问题 是不是因为我的编号是varchar类型的原因,我先把编号转成integer类型ComboBox1.Items.AddObject(ADOQuery1.FieldByName('f_mc').AsString,TObject(StrToInt(ADOQuery1.FieldByName('f_bh').AsString)));然后取的时候Edit1.Text:=inttostr(integer(ComboBox1.Items.Objects[ComBobox1.ItemIndex]));就没事了好像很麻烦,应该怎么做呢 如果string的话不乱码纯属运气,string的局部变量生存期一过生动就销毁了4楼那以为正常是因为用了个常量字符串不会被销毁 因为定义的字符变量为局部变量,当离开其所在过程后,再次读取object的内容时,就会有问题了你最好建立一个类或者record,里面包含你所要的信息,然后讲类或record的指针存入object,这样你可以保存很丰富的信息 把代码都存到一个对象列表里,每个代码是一个对象,combobox里的object指向这些对象就好了,这个比较正规或者如果代码存在于列表里,combobox的object里存index 在執行mssql查詢後,我想知道這個查詢花了多少時間,請問我怎樣做才行?謝謝大家! 有类似EXCEL表格的控件吗?》要能修改行和列的名字,谁有,介绍一个,急,谢 中秋大送分,祝大家节日快乐,心想事成!! 关于chart的填充数据 快快快 ,这个病毒害死我了 ! 在C/S结构的数据库中大家用什么Grid来显示数据?还是DBGrid,DBGridEH吗?恐怕用连通数据库的方式不行吧? 初学delphi,第三个简单的问题。谢谢大家!:) delphi xe5 indy 10环境 icmpclent组件 ping的问题 delphi7.0中DBchart如何代码设置线的粗细? “在Win2000中调用DLL要以调用句柄的方式调用”是什么意思? delphi数组与记录在什么情况下用到 执行效率
从数据库里面读入你想要的数据,再重新加上去,记得要先把下拉列表里面的数据删了
这样选择的时候党派编号就是你的array[combobox.itemindex]
str:string;
begin
str := '党派编码';
ComboBox1.Items.AddObject('党派',TObject(str));
end;读的时候就是ComboBox1.Items.Objects[0] str := StrPas(PChar(ComboBox1.Items.Objects[0]));
ShowMessage(str);
另外,最好去找一些第三方的控件,这种东西很多的,devexpress的就不错。
上面得到ComboBox1选中的项的objects有点问题
ComboBox1.Items.AddObject(ADOQuery1.FieldByName('f_mc').AsString,TObject(StrToInt(ADOQuery1.FieldByName('f_bh').AsString)));然后取的时候
Edit1.Text:=inttostr(integer(ComboBox1.Items.Objects[ComBobox1.ItemIndex]));
就没事了
好像很麻烦,应该怎么做呢
4楼那以为正常是因为用了个常量字符串不会被销毁
因为定义的字符变量为局部变量,当离开其所在过程后,再次读取object的内容时,就会有问题了
你最好建立一个类或者record,里面包含你所要的信息,然后讲类或record的指针存入object,这样你可以保存很丰富的信息
或者如果代码存在于列表里,combobox的object里存index