ActiveForm技术过时了吗? 可以啊! 建一个空的AFX,把MIS的主窗口COPY 到上面..... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样做并不麻烦,试想一下对一个1000多人用的mis系统,如果一旦程序发生改动,你要怎么去把所有的客户端更新呢?如果用ativexform配合b/s结构,问题轻松多了 cobi:你有着方面的实际经验吗?望指点 没有,相反,随着IE6缺省安装版本取消了对JAVA的支持,ACTIVEX将发挥越来越重要的作用。IE已经统治了大部分的Windows机器。 我就在用ActiveForm做Mis有意者可以一起讨论一下。EMail : [email protected] ActiveForm技术适合用于高级管理人员。具体的说:假设一个项目中只有总经理级可查阅的资料的,你就可以用做个ActiveForm登陆窗口,然后在服务端击活EXE。由于总经理级的人员不是很多所有在服务器上击活几个同样的EXE也没关系。并且界面友好,功能强大。我用这招做过。呵呵,至今还没出事。 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代码 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也应该不同。 to 李静波:说起ActiveForm如何得到IE的信息以前论坛上有一个贴子,名字是《如何 :在ActiveX控件中获得顶层IWebBrowser2接口》 TO zy61(张旸) 请仔细想一想,你的每一个客户端必须安装BDE或者MDAC才可以啊,1000个客户端你怎么办?没人这么做的! 让delphi的浮点计算问题害惨了! 如何将TXT文件导入richedit 发现一个 bug 赏黄金千两! BrushCopy和CopyRect有什么区别 如何读写某FORM上Edit.Text的内容。 求一SQL算法 这个查询的sql语句应怎么写-急急!!! 把excel中整行内容赋值给s(string) 再问~~ 如何让局域网的某一台机子重新启动? 简单问题,望各位大侠不吝指教 标准的窗口问题
IE已经统治了大部分的Windows机器。
EMail : [email protected]
我做的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代码
关于你问的ActiveForm之间相互调用的问题,我是这样想的:
1.如果你的这种调用是固定的,也就是A调用B是一定的,则可以直接将B安装为控件,就是在Component->install Component 中安装B_tlb.Pas然后会在Active板上生成一个控件B
然后就可以和VCL控件一样使用B了
2.如果你的调用不是固定的,而是A可能调用B1,B2...等多个控件的,则它们应该有一个共同的接口,然后你同样可以上面的方法,只是在TB的InitControlData使用不同的ClassID而以,如果你有LicenseKey的话,LicenseKey也应该不同。
说起ActiveForm如何得到IE的信息以前论坛上有一个贴子,名字是
《如何 :在ActiveX控件中获得顶层IWebBrowser2接口》
请仔细想一想,你的每一个客户端必须安装BDE或者MDAC才可以啊,1000个客户端你怎么办?没人这么做的!