创建一个dll窗体加入了vcl skin  皮肤控件,在主程序调用时无效,该怎样解决?!?

解决方案 »

  1.   

    得到打开的窗体,然后UpdateSkin
    pForm: TForm;  if mySkinData.Active then
      begin
        mySkinData.UpdateMenu(pForm);
        mySkinData.UpdateSkinControl(pForm);
      end;
      

  2.   

    Build with runtime package: vcl; rtl
      

  3.   

    form2.pas为dll中的窗体,form1未主程序调用窗体,在form2\form1中放置winskindata皮肤控件,form2窗体不显示皮肤。
    用xxmmmx 提供的方法,运行出现地址读取错误。能不能详细点!!大哥!!
    budded的方法不知道咋用!!!郁闷!!
      

  4.   

    DLL窗体
    use winskindlg;procedure SetApplicationHandle(Handle: HWnd;adata: Pointer);stdcall;
    procedure SetApplicationHandle(Handle: HWnd;adata: Pointer);
    begin
      Application.Handle := Handle;
      Winskindata.SkinDll(adata);
    end;
    主窗体调用
    SetApp(Application.Handle,winskindlg.skinmanager);
      

  5.   

    tp26021340 老大,我是初学‘dll窗体中的第三方皮肤控件’能不能详细说明下原理和较完整的代码!叩谢。。 
      

  6.   

    似乎要把winskindlg.skinmanager传过去,lz可以试试..
      

  7.   

    DLL窗体 
    use   winskindlg; procedure   SetApplicationHandle(Handle:   HWnd;adata:   Pointer);stdcall; 
    procedure   SetApplicationHandle(Handle:   HWnd;adata:   Pointer); 
    begin 
        Application.Handle   :=   Handle; 
        Winskindata.SkinDll(adata); 
    end; 
    主窗体调用 
    SetApp(Application.Handle,winskindlg.skinmanager); 
    Winskindata.SkinDll(adata); 这句我不理解!!
    winskindlg.skinmanager怎么传过去!?
      

  8.   

    不好意思,最近忙,没有来看贴子,
    你可以到http://www.link-rank.com/去查看和下载的,
    我个人认为winskindlg.skinmanager指针地址传到DLL
    由Winskindata.SkinDll(adata)来接收地址指针