我试了一下,如何不是采用dll方式的话,能够正确嵌入。
代码如下:
 if not assigned(form1) then
   Application.CreateForm(Tform1,form1);    
 with form1 do
 begin
   Parent := panel;
   align := alClient;
   BorderStyle := bsNone;
   BorderIcons := [];
   Top := 0;
   Left := 0;
   WindowState:=wsMaximized;         
   show
 end; 但是如果采用dll方式的话,发现什么反应都没有,怎么回事?代码如下:
 DLLName := getDisposalDLLName;
 LoadDLL(DLLName);
 if not assigned(ChildForm) then begin
   ChildForm:=ShowChild(Application,@FormFreeCallBack,'','','dBAlias_ND',ssdw,Userid,ScrollBox1);
 end; with ChildForm do
 begin
   Parent := scrollbox1;
   align := alClient;
   BorderStyle := bsNone;
   BorderIcons := [];
   Top := 0;
   Left := 0;
   WindowState:=wsMaximized; 
   show
 end;

解决方案 »

  1.   

    试过了,还是没有用
    采用dll方式,如果隐去Parent := scrollbox1;那么窗体能够正常调用,就是加了这句嵌入的语句,窗体就死活看不到,但是所有语句是执行了的
      

  2.   

    DLLName := getDisposalDLLName;
     LoadDLL(DLLName);
     if not assigned(ChildForm) then begin
       ChildForm:=ShowChild(Application,@FormFreeCallBack,'','','dBAlias_ND',ssdw,Userid,ScrollBox1);
     end; with ChildForm do
     begin
       Parentwindow := H;//H为scrollbox1的Handle有些控件不能传入dll,将句并传入就好了
       align := alClient;
       BorderStyle := bsNone;
       BorderIcons := [];
       Top := 0;
       Left := 0;
       WindowState:=wsMaximized; 
       show
     end;
      

  3.   


    http://expert.csdn.net/Expert/topic/2241/2241330.xml?temp=.352749问题解决一起结贴