form1 上放了pagecontrol 有1个标签页 tabsheet1
在 他的 onshow 事件中有代码如下:procedure TForm1.TabSheet1Show(Sender: TObject);
var tmp: tbutton;
begin
    tmp := tbutton.Create(self);
    tmp.Parent := TabSheet1;
    tmp.width := 20;
    tmp.height := 20;
end;可是 tmp 在 form 上就是 不出现。但是 将上述 过程 放在 一个 button 的 click 事件里
生成的 tmp 就能显示出来。求解 怎么能 在TabSheet1Show 里 就能把 tmp 显示出来。form1.update 不行。tabsheet1.Update; 也不行。求帮忙!

解决方案 »

  1.   

    楼主,我试了试,可以在TabSheet1上显示出来
    不知道你是想要在Form上显示呢还是在TabSheet上显示呢
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        PageControl1: TPageControl;
        TabSheet1: TTabSheet;
        Button1: TButton;
        procedure TabSheet1Show(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }  public
        { Public declarations }  end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TabSheet1Show(Sender: TObject);
       var     tmp : tbutton;
    begin
        tmp := tbutton.Create(self);
        tmp.Parent := TabSheet1;
        tmp.width := 20;
    tmp.height := 20;
    tabsheet1.Update;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var        tmp : tbutton;
    begin
        tmp := tbutton.Create(self);
        tmp.Parent := TabSheet1;
    end;end.
    晕 我的怎么显示不出来呢
      

  3.   

    写到formCreate事件里吧,道理么,看看vcl代码可以找出来
      

  4.   

    难道和 版本 有关系?
    我的 是 +了 updata 的D7
      

  5.   

    如果不能放在 onshow 事件里 就没有意义了。
      

  6.   

    我的也可以在TabSheet1显示出来啊不过要放两个TabSheet 才可以显示出来
    你放一个的话就写在Oncreat事件里把
      

  7.   

    var
      tmp : TButton;
    begin
      tmp := TButton.Create(Self);
      tmp.SetBounds(0,0,25,25);
      tmp.Parent := TabSheet1;
      

  8.   

    昨天试了一下。。一个Tabsheet的确出不来。。两个的话。。在进行页面切换后,tmp就出来了。。所以我想可以看看pagecontrol页面切换的代码,研究一下昨天我测试了Repaint、Refresh、Update、Visible这些方法方法。都不行。。
      

  9.   

    1、为什么要放在Tabsheet的SHOW事件中?这样的话每次切换页都会执行这一段代码
    2、尝试放在FORMSHOW事件中
    3、始终有必要,可以动态切换一下页面