TArr = record
    Panel: TPanel;
    Button:TButton;
  end;var
  Arr:array of TArr;点击数组其中一个ButtonClick事件,设置对应位置的Panel
我这样做的
var 
 i,iH:integer;iH:=length(Arr);
for i:=0 to iH do
 if Arr[i].Button=TButton(Sender) then
 begin
  Arr[i].Panel.Color:=clRed;
  break;
 end有没有不循环查找直接设置对应位置的Panel?

解决方案 »

  1.   

    如果數量不多, 就一個Panel上只放入一個Button
    就可以這樣用:
    TPanel(Button.Parent).Color:=clRed;
      

  2.   

    兩者之間有沒有什麼關聯呀.
    如果沒有就用最笨的方法吧.
    使兩者的tag一樣.
      

  3.   

    每个控件都可以设它的tag属性啊
      

  4.   

    tag这个属性没有其他作用的,就是给你随便设个值方便编程用的~~
      

  5.   

    for i:=Low(Arr) to High(Arr) do begin  //从低到高
    end;
      

  6.   

    楼上说的对,Arr[i].button.tag:=i
     Arr[i].panel.tag:=i
    if Arr[i].button.tag=Arr[i].panel.tag then
    Arr[i].panel.color:=clred;