用这么麻烦吗?为什么不用数组呢?
VAR S:ARRAY[1。。N] OF STRING
你就可以用S[1];S[2]。

解决方案 »

  1.   

    VAR S:ARRAY[1..N] OF TCheck;
    s[1].check:=true;
    s[2].check:=false;
      

  2.   

    var check :array[1...n] of integer;
    然后为数组赋值
    check[1]:=1;
    check[2]:=2;
       .
       .
       .
      

  3.   

    放弃吧,只能用变通的方法来实现。
    比如可以自定义类实现如下操作:
       Items['Check1'].Checked := TRUE;
       Items['Check2'].Checked := TRUE;
      

  4.   

    可以实现:
    c:Tcheck
    for x:=1 to n do
    c:=(format(check%d,[x]) as Tcheck)
      

  5.   

    可以实现:
    c:TComponent
    for x:=1 to n do
    c:=(format(check%d,[x]) as Tcheck)
      

  6.   

    在 check%d两边家一个单引号
      

  7.   

    var
    s:array[0..n] of integer
    kk:array[0..n] of string
    i:integer;
    begin
    for i:=0 to n do
    kk[i]:='check'+inttostr(s[i]);
    end;