我想建立一个数组
专门用来表示Panel
比如:A_P[0]代表Panel_A(此为一类Panel)
      A_P[1]代表Panel_B(此为一类Panel)
然后,还要在操作时,在Panel_A后面加1、2、3、4
也就是说,实际上界面上存在的、且我要操作的Panel是Panel_A1,Panel_A2等
请问有可能实现吗?
如果有的话
如何实现
谢谢!

解决方案 »

  1.   

    直接声明控件数组啊
    A_P :array [0..x] of TPanle
    然后初始化的时候你自己给他初始化啊
      

  2.   

    那我怎么声明
    A_P[0]:=Panel_A呢? Panel_A其实并不存在
    我的意思是
    把A_P[0]都设为Panel_A
    以后如果我要用Panel_A1
    该用什么方法实现Panel_A+'1'?
      

  3.   

    直接声明控件数组啊
    A_P :array [0..x] of TPanle
    在formcreate加入
    A_P[1]:=Panel_A1;
    A_p[2]:=panel_A2;
    A_p[3]:=Panel_A3;
    .........
    .......
      

  4.   

    如果你的控件不是很多的话在开发中,你可以在form中放入panel控件,然后声明一个tpanel数组,然后再对这个tpanel类中的[i]进行赋值,就可以进行对panel类中的实例进行 操作了,,你试试看,,不过这个方法是直对panel控件不是很多的情况下进行的,
      

  5.   

    可以
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      Panel_A: arrary of TPanel;
      Panel_B: arrary of TPanel;
    begin
      // 初始化Panel_A
      Setlength(Panel_A, 4); 
      for i:= low(Panel_A) to high(Panel_A) do
        Panel_A[i]:= TPanel.Create(self)
        Panel_A[i].Parent:= Form1;
        ...
    end;
      

  6.   

    楼上的……
    你那个我也知道……
    如果是这样的,那我还何必呢……
    我是要
    A_P[1]:=Panel_A;
    A_p[2]:=Panel_B;
    A_p[3]:=Panel_C;然后使用Panel_A1,Panel_B2,Panel_C1
      

  7.   

    一下子加了几楼……
    我是对99guo(小兵)说的。
      

  8.   

    你要
    A_P[1]:=Panel_A;
    A_p[2]:=Panel_B;
    A_p[3]:=Panel_C;
    然后使用Panel_A1,Panel_B2,Panel_C1逻辑混乱加无聊!
      

  9.   

    因为这样可以减少很多的程序量
    比如:如果我要改变一个系列的Panel的颜色
    我就可以用
    for i:=1 to 10 do
      begin
        for j:=1 to 10 do
          (A_P[i]+inttostr(j)).color:=clYellow;
      end;
    当然了:(A_P[i]+inttostr(j))如何定义,现在94我要问的问题了
      

  10.   

    Const Prefix=Panel_A;for i:=low(A_P) to high(A_P) do
      A_P[i]:=TPanel(FindComponent(Prefix+IntToStr(i+1)));