下面是我的代码 unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls, Menus; type { TForm1 } TForm1 = class(TForm) MenuItem1: TMenuItem; PageControl1: TPageControl; PopupMenu1: TPopupMenu; procedure FormShow(Sender: TObject); procedure MenuItem1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; Buttons:array[1..3,1..3]of tbutton; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormShow(Sender: TObject); var i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do begin buttons[i,j]:=tbutton.Create(self); with buttons[i,j] do begin Parent:=self; width:=80; height:=30; top:=j*30; left:=i*80; caption:='button'+inttostr(i)+','+inttostr(j); showhint:=true; hint:=caption; end; end; end; procedure TForm1.MenuItem1Click(Sender: TObject); var newpage:ttabsheet; begin newpage:=ttabsheet.Create(pagecontrol1); newpage.Parent:=pagecontrol1; newpage.PageControl:=pagecontrol1; newpage.caption:=((((Sender as TMenuItem).GetParentComponent) as TPopupMenu).PopupComponent as tbutton).caption; end; end.