delphi PageControl 动态打开的窗体无法编辑,如何解决? 10

用PageControl动态添加tabsheet,打开的窗体怎么编辑不了呢?代码:unitUnit1;interfaceusesWindows,Messages,SysU... 用PageControl动态添加tabsheet,打开的窗体怎么编辑不了呢?代码:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
Button1: TButton;
TabSheet1: TTabSheet;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses
Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
MyTab:TTabSheet;
i:integer;
begin
for i:=0 to PageControl1.PageCount -1 do
if
PageControl1.Pages[i].Caption='Form2'
then

begin
PageControl1.ActivePageIndex:=i;
Exit;
end;

MyTab:=TTabSheet.Create(PageControl1);
Form2:= TForm2.Create(Self);
MyTab.PageControl:=PageControl1;
MyTab.Caption:=Form2.Caption;
MyTab.TabVisible:=True;
// Form2.ManualDock(MyTab); //融合窗口,没有标题
// Windows.SetParent(Form2.Handle,MyTab.Handle);//不能显示全部窗体
Form2.Parent:=MyTab;
Form2.Align:=alClient;
Form2.Visible:=True;
PageControl1.ActivePage:=MyTab;

end;

end.

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

end.

另外求个关闭窗体,同时释放相应tabsheet的代码。
展开
 我来答
匿名用户
2015-11-30
展开全部
1、无法编辑,把这句恢复就可以了,具体原因不是很清楚,无法获取焦点,可能因为Form2窗口类型吧// Form2.ManualDock(MyTab); //融合窗口,没有标题
2、在Form2的FormClose事件中加上,Self.Parent.Free,即可释放MyTab
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式