这是一个简单的问题,但我不知道如何通过连接两个字符串来构造变量名。下面的代码是不怎么做......
var
UserName1 : String;
UserName2 : String;
Password1 : String;
Password2 : String;
UserCount : Integer;
UserCount := 2;
for Wk1 := 1 to UserCount do
begin
DoLogin(UserName+Wk1, Password+Wk1);
end;
答案 0 :(得分:2)
不要试着这样做。
需要反射(或RTTI - 运行时类型信息)并且在Delphi中使用它并不好,因为它可以在发布之间进行更改,并且在构建时我需要包含调试信息。
所以使用一两个数组。
var
UserNames[1..2] : String;
Passwords[1..2] : String;
UserCount : Integer;
UserCount := 2;
for Wk1 := 1 to UserCount do
begin
DoLogin(UserNames[Wk1], Passwords[Wk1]);
end;
答案 1 :(得分:2)
基本上,你不能这样做。变量名在编译时固定,并转换为保存变量值的地址。
看起来你想要一个数组,或者在这种情况下,两个:一个数组将保存登录名,一个数组保存密码。当然,你可以将两者合并为一个记录,然后有一系列记录。
type
LogType = record
username, password: string[31]
end;
var
LogArray: array [1..10] of logtype;
usercount, wk1: integer;
begin
UserCount := 2;
for Wk1 := 1 to UserCount do
begin
DoLogin(logarray[wk1].username, logarray[wk1].password);
etc
end;
end;