怎样做才能在Form上面放一个Panel,接着动态生成如下效果。现向各位高手求一个例子

解决方案 »

  1.   

    你就动态生成panel然后安排好位置就行了
      

  2.   


    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm2 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}procedure TForm2.FormCreate(Sender: TObject);
    var
      i,j : integer;
      pnl : Tpanel;
       __left,__top : Integer;
    begin
       __left := 0 ;
       __top := 0;
      for I := 0 to 2 do
      begin
        for J := 0 to 3 do
        begin
          pnl := Tpanel.Create(self);
          pnl.Parent := self;
          pnl.Name := 'pnl'+Inttostr(i)+inttostr(j);
          pnl.Left := __left;
          pnl.Width := self.ClientWidth div 4;
          pnl.Height := self.ClientHeight div 2;
          pnl.Top := __top;
          __left := pnl.Left+pnl.Width;
        end;
        __left := 0;
        __top := self.ClientHeight div 2;
      end;
    end;end.
      

  3.   


    Var
       MyPanel : Array of TPanel;
       i,j,k: Integer;
    begin
       SetLength(MyPanel,12);
       for i := 0 to 11 do
       begin
         MyPanel[i] := TPanel.Create(Self);
         MyPanel[i].Width := 130;
         MyPanel[i].Height:= 80;
         MyPanel[i].Parent:=self;
         j:=Trunc(i/4);  //取整  行
           K:=i mod 4 ;   //取余  列
           if i<4 then
           begin
             MyPanel[i].Top:=30;
             MyPanel[i].Left:=30+i*130;
           end else
           begin
             MyPanel[i].Top:=30+80*j;
             MyPanel[i].Left:=30+k*130;
           end;
       end;
    end;
      

  4.   

    datacontrols->dbctrlgrid上面放panel
      

  5.   

    Delphi2007开始有一个可以自动分组的Panel好像叫TGridPanel吧!
      

  6.   

    这个实现起来很好看,starluck的有点重复最后一个大小和其他的不一样。
      

  7.   

    那不就是在Canvas上画线嘛。一条灰色,接着一条白色。
      

  8.   

    先谢谢大家,特别感谢starluck、ameken。贴子会继续加分。