我要做到以下效果
////////////////////////////////////////
var
   aForm : TForm;
   tabSheet : TTabSheet;
begin
   //Create a new tab sheet
   tabSheet := TTabSheet.Create(PageControl1) ;
   tabSheet.PageControl := PageControl1;   //create a form
   //aForm := TForm.Create(tabSheet) ;
   aForm.CreateParentedControl(tabSheet.Handle );
   aForm.Parent := tabSheet;
   aForm.Align := alClient;
   aForm.BorderStyle := bsNone;
   aForm.Visible := true;
   tabSheet.Caption := aForm.Caption;   //activate the sheet
   PageControl1.ActivePage  := tabSheet;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       aForm : TForm2;
       tabSheet : TTabSheet;
    begin
       aForm:= TForm2.Create(nil);
       aForm.Align := alClient;
       aForm.BorderStyle := bsNone;
       aForm.Show;
       tabSheet := TTabSheet.Create(PageControl1) ;
       tabSheet.PageControl := PageControl1;
       Windows.SetParent(aForm.Handle,tabSheet.Handle);
       tabSheet.Caption := aForm.Caption;
       PageControl1.ActivePage  := tabSheet;
    end;
      

  2.   

    窗体并非TForm对象,可否完全用API处理?
      

  3.   

    基本解决了,但又有个新问题
    PageControl1也只有句柄tabSheet.PageControl := PageControl1;
    这句该如何改tabSheet.PageControl.Handle:=PageControlhwnd;
    不行
    Windows.SetParent没效果