可以啊!
   建一个空的AFX,把MIS的主窗口COPY 到上面.....

解决方案 »

  1.   

    这样做并不麻烦,试想一下对一个1000多人用的mis系统,如果一旦程序发生改动,你要怎么去把所有的客户端更新呢?如果用ativexform配合b/s结构,问题轻松多了
      

  2.   

    cobi:你有着方面的实际经验吗?望指点
      

  3.   

    没有,相反,随着IE6缺省安装版本取消了对JAVA的支持,ACTIVEX将发挥越来越重要的作用。
    IE已经统治了大部分的Windows机器。
      

  4.   

    我就在用ActiveForm做Mis有意者可以一起讨论一下。
    EMail : [email protected]
      

  5.   

    ActiveForm技术适合用于高级管理人员。具体的说:假设一个项目中只有总经理级可查阅的资料的,你就可以用做个ActiveForm登陆窗口,然后在服务端击活EXE。由于总经理级的人员不是很多所有在服务器上击活几个同样的EXE也没关系。并且界面友好,功能强大。我用这招做过。呵呵,至今还没出事。
      

  6.   

    to 李静波 :
    我做的Mis系统是在局域网上运行的,客户程序也是自己做的。我之所以要用ActiveForm是因为我定义了一个标准的接口,这样就可以用一个客户程序调用不同的ActiveForm实现不同的功能,当有新的功能出现时,我可以只有一个ActiveForm放在网上让客户程序下载,同时在数据库中注册一下,这样客户程序根据数据库中的注册自己找到这个ActiveForm下载并运行。这样的好处是不需要频繁重新编译程序(大家知道MIS的需求实在是...),并且省去了安装等工作。
        至于你说的如果在HTML中和ActiveForm通信的问题,我想是这样的
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 2</title>
    </head>
    <OBJECT id=yuzi classid=CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F width="32" height="32"></OBJECT>  
    <SCRIPT>  
    var MerlinID;  
    var MerlinACS;  
    yuzi.Connected = true;  
    MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS);  
    Merlin = yuzi.Characters.Character(MerlinID);  
    Merlin.Show();  
    Merlin.Play("Surprised");  
    Merlin.Speak("欢迎来到我的家");  
    Merlin.Play("GestureLeft");  
    Merlin.Think("这是一个个人站点");  
    Merlin.Play("Pleased");  
    Merlin.Think("希望能给你带来一些方便与快乐");  
    Merlin.Play("GestureDown");  
    Merlin.Speak("谢谢光临!请以后常来!");  
    Merlin.Hide();  
    function LoadLocalAgent(CharID, CharACS) {  
    LoadReq = yuzi.Characters.Load(CharID, CharACS);  
    return(true);  
    }  
    </SCRIPT>
    <body></body>
    上面是一个调用梅林的HTML代码
      

  7.   

    to hwycom:
    关于你问的ActiveForm之间相互调用的问题,我是这样想的:
    1.如果你的这种调用是固定的,也就是A调用B是一定的,则可以直接将B安装为控件,就是在Component->install Component 中安装B_tlb.Pas然后会在Active板上生成一个控件B
    然后就可以和VCL控件一样使用B了
    2.如果你的调用不是固定的,而是A可能调用B1,B2...等多个控件的,则它们应该有一个共同的接口,然后你同样可以上面的方法,只是在TB的InitControlData使用不同的ClassID而以,如果你有LicenseKey的话,LicenseKey也应该不同。
      

  8.   

    to 李静波:
    说起ActiveForm如何得到IE的信息以前论坛上有一个贴子,名字是
    《如何 :在ActiveX控件中获得顶层IWebBrowser2接口》
      

  9.   

    TO zy61(张旸) 
    请仔细想一想,你的每一个客户端必须安装BDE或者MDAC才可以啊,1000个客户端你怎么办?没人这么做的!