我要实现一个循环对10个image控件进行属性定义,比如:
image1.width:=10;
image2.width:=10;
.....
代码如下:
type ff=record
end;
procedure TForm1.FormCreate(Sender: TObject);
var image:array[1..10] of ff;
    js:integer;
 begin
     for js:=1 to 10 do
      begin
        Image[js].width :=10;
     end;
  end;
但是提示无法识别这个width,就是说image的类型不对,请问如何正确写,谢谢!

解决方案 »

  1.   

    这样是不行的
    控件数组的基类要是TImage
    var 
      Image:array[1..10] of TImage;接下来要给他们赋值:
    Image[1]:=Image1;
    ...
    Image[10]:=Image10;
    别说麻烦,这样一次赋值后再操作就方便了
    当然了,也可以用查找元件的方法来做赋值
      

  2.   

    我用查找元件的方法可以实现,但是有bug
    我有10个image,有5个是在panel1上,有5个在panel上,在循环语句中可以实现panel1上的5个,但是另5个就不行,只好再写5遍,
    而且把i:=1 to 10改为5,前5个有2个不行。:(所以只能按下面代码写,虽然可以实现但是程序写的不干净利落。
     i:integer;
    begin
      for i:=1 to 10 do
      begin
        if components[i] is timage then
        begin
        (components[i] as timage).OnMouseEnter:=mouseenter;
        (components[i] as timage).OnMouseLeave:=mouseleave;
        end;
      end;
      Image6.OnMouseEnter := MouseEnter;
      Image6.OnMouseLeave := MouseLeave;
      Image7.OnMouseEnter := MouseEnter;
      Image7.OnMouseLeave := MouseLeave;
      Image8.OnMouseEnter := MouseEnter;
      Image8.OnMouseLeave := MouseLeave;
      Image9.OnMouseEnter := MouseEnter;
      Image9.OnMouseLeave := MouseLeave;
      Image10.OnMouseEnter := MouseEnter;
      Image10.OnMouseLeave := MouseLeave;
      

  3.   

    i:integer;
    begin
      for i:=0 to Componentcount-1 do
      begin
        if components[i] is timage then
        begin
        (components[i] as timage).OnMouseEnter:=mouseenter;
        (components[i] as timage).OnMouseLeave:=mouseleave;
        end;
      end;
      

  4.   

    我改了一下,谢谢! 怎么给你加分呀?
      i:integer;
     Image:array[1..10] of TImage;
    begin
     Image[1]:=Image1;
     Image[2]:=Image2;
     Image[3]:=Image3;
     Image[4]:=Image4;
     Image[5]:=Image5;
     Image[6]:=Image6;
     Image[7]:=Image7;
     Image[8]:=Image8;
     Image[9]:=Image9;
     Image[10]:=Image10;
        for i:= 1 to 10 do
         begin
          image[i].OnMouseEnter:=mouseenter;
          image[i].OnMouseLeave:=mouseleave;
         end;
     end;
      

  5.   

    楼上的方法我用过,在panel2上的5个image不行