请高手给个思路:(有示例更好)现在我有15个panel,我想通过查询 select a.name,a.codelength from 表 a
动态控制10个panel的with和caption:
假设:recordcout case
  1:那么panel1.caption:=a.fieldbyname('name').asstring;
  2:panel1.caption:=a.fieldbyname('name').asstring;//第1个name
     panel2.caption:=a.fieldbyname('name').asstring;//第2个name
  3:
     panel1.caption:=a.fieldbyname('name').asstring;//第1个name
     panel2.caption:=a.fieldbyname('name').asstring;//第2个name
     panel3.caption:=a.fieldbyname('name').asstring;//第3个name
  4:
     panel1.caption:=a.fieldbyname('name').asstring;//第1个name
     panel2.caption:=a.fieldbyname('name').asstring;//第2个name
     panel3.caption:=a.fieldbyname('name').asstring;//第3个name
     panel4.caption:=a.fieldbyname('name').asstring;//第4个name
.......请问我该咋个去循环处理呢?

解决方案 »

  1.   

    var 
    i:integer;
    i:=1;
    query1.close;
    query1.sql.clear;
    query1.sql.add('select a.name,a.codelength from 表 a
    ');
    query1.open;
    query1.first;
    while not query1.eof   
     do 
      begin 
      panel[i].caption:=a.fieldbyname('name').asstring;
      i:=i+1;
      query1.next;
    end;
      

  2.   

    panel[i]该如何定义呢?真的不懂
      

  3.   

    panel[i]不用定义吧,i=1,则panel[i]=panel1
      

  4.   

    var panel: array of Tpanel;
      

  5.   

    感谢大家参与,问题已经解决共享如下:
    var
    mypanel:string;
    begin
    mypanel:='panel';
    i := 1;
          Q1.First;
          while not Q1.Eof do
          begin
            with TPanel(FindComponent(mypanel + IntToStr(i))) do
            begin
              Caption := Q1.fieldbyname('levelname').AsString;
              Visible :=true;
            end;
            i := i + 1;
            Q1.Next;
          end;
    end;