有请大侠高手给讲一讲ActiveForm的开发制作方法,以及如何打包为.cab,还有数字签名,认证是怎么回事儿?(100分)

  • 主题发起人 主题发起人 ligsh
  • 开始时间 开始时间
L

ligsh

Unregistered / Unconfirmed
GUEST, unregistred user!
问题很麻烦,但可能不是很难,还望诸位不吝笔墨,万分感谢!
 
为什么不尝试用用全文搜索有关你这个问题的帖子呢?
以前的旧帖子全部可以解决你这个问题。
稍微动下手,就会得到结果。勤快点没坏处~
 
1、选择"file/new/other"于new items对话框中选择activex选项,在其中选择建立activex form。此时会弹出一个对话框用于输入你所建立activex组件的名称、object pascal程序单元名称、项目名称等。还有一些activex包含版本控制编号等可选项,可以按缺省的设置直接点击ok即可。

  2、现在你可以在打开的工程中来设计你的程序了,这里和一般的应用程序的设计一样,可以根据自己的需要来创建不同的form来实现自己的功能。但需要注意一点的是各form之间的调用不能用form.showmodal来实现了,需要动态调用form来实现,如以下定义过程:


Procedure Tform1.ShowForm(AFormClass:TFormClass);
Begin
With AFormClass.Create(Self) do
try
ShowModal;
finally
Free;
end;
End


  调用form2可以用:showform(Tform2),程序设计完成后,保存单元文件和工程文件到相应的目录下。假设保存在"c:/my documents"。

  3、程序设计完成之后,可以准备生成你所想要的应用程序了,但这里不是点击运行,而是首先选择"project/web deployment options" 在project选项中的"Target dir"中添入"./", "Target URL"中添入"./", "HTML dir"中添入"./"来设置一些文件存放路径。最后选择"project/web deploy",点击"yes to all"即可。

  此时打开 "c:/my documents"会看到已生成的htm文件,打开htm文件你会看到你所设计的应用程序已经可以在浏览器中使用了。你可以用网页编辑器来修改所生成的htm文件使它更符合你的要求。至此完整的实现过程结束。实际上Delphi是把编写的应用程序编译成了activex组件,在浏览器中调用activex组件,所以只适用于一些小的应用程序。
 
非常感谢zwcih,关于此,我还有一个问题,就是怎么把一个已经存在的应用程序(当然不大)包装成(或者应该说转化成?)ActiveForm?因为我在修改我的前任做的ActiveForm,他就是先做好应用程序,然后再包装成ActiveForm,可是我实在理不出头绪,不知如何下手,这好像还和重新做一个ActiveForm不一样。还望高手赐教。
再次感谢zwcih!并期望您再次惠顾。
 
1.启动Delphi,选择File|New Application建立一个应用程序,设置主窗体的name为frmTest,width=400,height=300,同时你还可以在窗体上加入任何你想要使用的控件(这一切就和你平时编写Delphi程序一样),以及任何你想要实现的功能,保存此程序(如窗体文件为:test.pas,test.dfm)。
2.关闭上述程序,在Delphi中选择File|New|ActiveX|ActiveForm,单击OK按钮确定,出现如图2所示AxtiveForm Wizard对话框,其中New ActiveX Name项为将要在IE中用到的ActiveX名称,其余项目按照默认值即可,单击OK确定,得到一个新的ActiveForm工程,在产生了空白的ActiveForm窗体之后,设置这个窗体的Width=400,Height=300(Width和Height的值必须和你要在IE中显示的应用程序的相应值一样如上面的frmTest)。
3.保存此工程,然后拷贝第一步中的test.pas和test.dfm到保存此工程的目录中,在Delphi中选择View|Project Manager打开此ActiveForm的工程管理器,如图3所示加入test.pas和test.dfm。接下来要编写几行程序了,先在ActiveForm的程序单元的uses中加入test的窗体,再在ActiveForm主窗体中加入变量frmT,此变量为TfrmTest的对象变量(如图4)。接着在ActiveForm的OnCreate中编写如下程序。这些程序的作用是现动态建立Test的主窗体,设定它在ActiveForm的显示区域中执行,当此ActiveForm在IE中下载执行时,Test便会显示在ActiveForm显示区域之中。最后再在ActiveForm的OnDestroy函数中添加如下程序,释放OnCreate中创建的Test主窗体。
procedure TTestX.ActiveFormCreate(Sender: TObject);
begin
frmT := TfrmTest.Create(self);
frmT.Parent := self;
frmT.Align := alClient;
frmT.BorderStyle := bsNone;
frmT.Visible := true;
end;
procedure TTestX.ActiveFormDestroy(Sender: TObject);
begin
frmT.Free;
end;
接下来就可以把上述ActiveForm发布到自己的Web server中,以供使用。在发布之前,需要先对需要发布的ActiveForm作一些设置(如图5)。在Delphi中选择Project|Web Edployment Options...,其中“Target dir”指的是ActiveForm要发布到的目的地位置,我用“D:test”是因为在IIS中指定程序和ActiveX组件放置的目录。“Target URL”指的是此ActiveX组件在HTML首页中codebase tag的位置。“HTMLdir”指的是Delphi在发布ActiveX组件时会自动为我们产生一个HTML首页,“HTMLdir”则是保存此首页文件的位置。正确设定上述相关项目后,图中General Options之中的选项也是需要设置的。如果程序员在ActiveForm Wizard对话框中选定了Include Version Information选项,Delphi会自动选定Include file ersion number选项。
除此之外,程序员最好也选定Auto Increment release nember。此选项会在程序员每次重新编译范例ActiveForm时自动的增加范例ActiveForm的版本号。这样作的好处是,当我们以“客户/服务”模式在IE中使用此ActiveForm时,IE会发现客户端计算机中的范例ActiveForm是较旧的版本,那么IE就会自动的在服务器中下载新的范例ActiveForm组件到客户端计算机中。
完成上述设置后,再在Delphi中选择Project|Web Deploy开始发布范例ActiveForm组件到Web server中,如果都没遇问题的话,程序员可以看到一个标题为Deploying Project的画面。
 
to:wkp13_8, 不错,
但是所有的页面需要一个窗体,可是在原工程中需要好多的窗体才能实现某些功能又怎样实现呢。
 
将 Frmtest 作为改造项目的主窗体,然后,其它的窗体在主窗体中动态创建。
 
多人接受答案了。
 
后退
顶部