Delphi问题,是不是要用Tlist?
Code:A1、A2、B1、B2、A1、A2、A1,
Name:L01,L02,L03,L04,L05,L06,L07,
如果CODE是唯一的,执行第一步:将Code(如:B1)抛到listBox中,自动回车,随后执行第二步:将对应的Name(L03)值抛到listBox。
如果Code不唯一,比如有三个A1,那第一步仍然将code(A1)抛到ListBox中,第二步:将对应的Name值:L01,L03,L05,L07,用逗号连起来再抛到ListBox中。以此类推,有两个B2等等,是一个循环,如何用delphi实现,请各位大侠帮忙,非常感谢啊!
追问:非常感谢你的答案,我是新手,还有一个问题想请教一下,就是Code和Name都是从一个文本文档中读进来的,上例中只是我举个例子用的"A1,A2....",文本文档中的格式是:A1,L01,A2,L02,A1,L03,B1,L04,B2,L05,C1,L04,这里的A,B,C都是Code,L..都是Name,怎么样读进来完成上面的提问。不知道我说明白了没有,非常感谢!
答案:我想你的意思是这样的吧 先选择CODE的值 之后将与CODE对应的NAME数组中的值列出来,CODE不一定唯一,选择一个元素则默认选择所有与这个相同的元素。
------------------------------------------------------------------
在选好CODE之后 加事件
var
aList: TStringList;
bList: TStringList;
vStr, aStr: String;
begin
aList := TStringList.Create;
bList := TStringList.Create;
aList.Delimiter := ',';
bList.Delimiter := ',';
aList.DelimitedText := 'A1,A2,B1,B2,A1,A2,A1'; //给你把、改成,了
bList.DelimitedText := 'L01,L02,L03,L04,L05,L06,L07';
vStr := '';
aStr := 'A1'; ////aStr 为你选择的CODE值
for I := 0 to aList.Count-1 do
begin
if aList.Strings[I]=astr then //aStr 为你选择的CODE值
begin
if vStr <>'' then vstr := vStr+','; //vStr为返回值
vStr := vStr+bList.strings[I];
end;
end;
ShowMessage(vStr);
上一个:delphi 如何将下列SQL语句的执行结果赋值给变量?
下一个:Delphi编写是怎么回事啊?