请问一下这个delphi程序怎么变
之前已经做好了n个程序
比如test1; test2; test3 ; test4等等
有一个edit1,button1,需要在edit1中输入1的时候,点击button1就执行test1,输入2点击就执行test2,等等
不要给我说做if,else来判断哈,这个程序有很多很多,可能到test50,而且还会增加,if,else不利于维护
追问:case也很麻烦啊
因为这个test程序的数字会不断新加的,每加一个就要到case里面去维护
那你告诉我,如果不判断,你怎么知道输入的内容具体调用哪个程序?你现在的问题是多对多,不是一对多,不用判断这关系是理不清楚的。
首先是这样,test的程序会自己做进去
只是希望执行变量一样,edit.text输入i的时候,就执行test(i)
前提是这个test(i)程序已经定义过了
不知道行不行
那就这样么,i作为变量,每次做一个test程序,就在原有的max(i)上递增1,
i:=i+1;
新的Test命名为test(i)
然后录入的Edit.text 先判断,
if (edit1.text>=0) and (edit1.text<=i)
begin
执行test(edit1.text)
end;
答案:用Case语句咯
其他:如果你做好的程序名称修改成有规律的名称,倒是可以有省事的办法..
在button1的单击事件里
Winexec(pchar('test'+edit1.text),1); 写个公共函数,两个参数,一个是按钮,一个是窗体,然后再按钮下执行。
上一个:delphi listview中拖动鼠标设置列宽之后运行程序的时候显示列宽还是初始宽度,怎么解决。。
下一个:(DELPHI)已经存入SQLSERVER中的图片数据(image字段)太大,怎么直接在数据库中压缩?或怎么用程序实现