在线等个关于TabSheet1Show的简单问题-可能也不简单哦

微笑的水 2005-10-08 01:53:28
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; 也不行。

求帮忙!
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanhongbin 2005-10-09
  • 打赏
  • 举报
回复
tmp.visible:=True;
Hank 2005-10-09
  • 打赏
  • 举报
回复
1、为什么要放在Tabsheet的SHOW事件中?这样的话每次切换页都会执行这一段代码
2、尝试放在FORMSHOW事件中
3、始终有必要,可以动态切换一下页面
senfore 2005-10-09
  • 打赏
  • 举报
回复
昨天试了一下。。一个Tabsheet的确出不来。。两个的话。。在进行页面切换后,tmp就出来了。。所以我想可以看看pagecontrol页面切换的代码,研究一下。。。

昨天我测试了Repaint、Refresh、Update、Visible。。。这些方法方法。都不行。。
quicksand201 2005-10-08
  • 打赏
  • 举报
回复
var
tmp : TButton;
begin
tmp := TButton.Create(Self);
tmp.SetBounds(0,0,25,25);
tmp.Parent := TabSheet1;
一根老玉米 2005-10-08
  • 打赏
  • 举报
回复
我的也可以在TabSheet1显示出来啊

不过要放两个TabSheet 才可以显示出来


你放一个的话就写在Oncreat事件里把


微笑的水 2005-10-08
  • 打赏
  • 举报
回复
如果不能放在 onshow 事件里 就没有意义了。
微笑的水 2005-10-08
  • 打赏
  • 举报
回复
难道和 版本 有关系?
我的 是 +了 updata 的D7
JJNW 2005-10-08
  • 打赏
  • 举报
回复
写到formCreate事件里吧,道理么,看看vcl代码可以找出来
sdzeng 2005-10-08
  • 打赏
  • 举报
回复
再放一个TabSheet
微笑的水 2005-10-08
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
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.
晕 我的怎么显示不出来呢
pengxuan 2005-10-08
  • 打赏
  • 举报
回复
楼主,我试了试,可以在TabSheet1上显示出来
不知道你是想要在Form上显示呢还是在TabSheet上显示呢

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧