我想要在一个panel上面中动态生成另外一个pane控件实例,但是运行发生错误:stack overflow,请问要怎么动态生成才不能出错???换句话说,应该怎么写语句??

解决方案 »

  1.   

    var
        MyPanel: TPanel;
    begin
        MyPanel := TPanel.Create(Self);
        with MyPanel do
        begin
            Parent := YourPanel;
            Left := 0;
            Top := 5;
            Height := 10;
            Width := 10;
            //可以设置其他的属性
        end;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var pan:Tpanel;
    begin
        pan:=Tpanel.Create(self);
        pan.Parent:=panel1;
    end;
      

  3.   

    var
        MyPanel: TPanel;
    begin
        MyPanel := TPanel.Create(Self);
        with MyPanel do
        begin
            Parent := Panel1; //这里修改一下
            Left := 0;
            Top := 5;
            Height := 10;
            Width := 10;
            //可以设置其他的属性
        end;
    end;
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        i:integer;
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}//动态创建如下:
    procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);var
    panelx:Tpanel;
    begin
    panelx:=Tpanel.Create(self);
    panelx.Parent:=Panel1;
    panelx.Width :=100;
    panelx.Height :=50;
    panelx.Left :=x;
    panelx.Top :=y;
    panelx.Name :=inttostr(i);
    i:=i+1;end;end.
      

  5.   

    MyPanel := TPanel.Create(firstPanel);
    with myPanel do
    begin
      属性设置;
      事件调用;
    end;
      

  6.   

    var Mypanel:TPanel
    begin
        Mypanel:=TPanel.Create(self);
        with MyPanel do 
        begin
            parent:=Panel1;
            width:=10;
            height:=10;
            top:=5;
            left:=5
        end;