用DELPHI开发AUTHORWARE的u32

2016-02-19 18:50 5 1 收藏

下面是个简单易学的用DELPHI开发AUTHORWARE的u32教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

用DELPHI开发AUTHORWARE的u32
  函数功能是AUTHORWARE最突出的特征,利用AUTHORWARE提供的系统函数能够完成一些复杂的控制任务。对于一些特殊的任务,AUTHORWARE允许用户自己定义函数,使得程序设计具有更大的灵活性。对于windows系统来说,自定义函数是以动态链接库(DLL)文件存储的,因此存储自定义函数的文件与当前交互式应用程序文件是分立。本文介绍一下如何用DELPHI开发AUTHORWARE的自定义函数—32 bit U32,本文以DELPHI开发可在AUTHORWARE中调用显示message box的U32为例子。虽然AUTHORWARE ATTAIN 5.0已提供了使用knowledge objects 显示message box的功能,但在4.0以前的版本无此功能,这就可用其它语言开发自己的U32,在AUTHORWARE中调用。 
  开发U32可分为五个步骤: 
  
  创建工程文件
  
  创建函数
  
  创建资源文件
  
  编译资源文件
  
  创建u32 
  1.创建工程文件 
  在file/new选择dll生成一个dll文件,在file/add to project….加入一个包含U32函数代码的单元myunit.pas(此单元在第二步创建函数中详细说明)在uses后必须声明所有可在authorware中调用的函数。例如: 
  
  exports MsgBox;
  最终的代码如下所似:
  library authorware;
  uses
    SysUtils,Classes,
    myunit in 'myunit.pas';
  exports MsgBox;
  begin
  end.
  2.创建函数 
  当你创建一个函数可用在authorware中,必须声明为exported 函数在关键字interface 后面加入代码如下: 
  
   interface
     uses ,Dialogs,SysUtils,windows;          
  function MsgBox(msg:string;mbType:
  Word;title:string):WORD;export;
  Delphi32 需要添加{$ifdef WIN32} stdcall ;
   ($endif} 在函数声明后面如:
  function MsgBox(msg:string;mbType:
  Word;title:string):WORD;export;
  {$ifdef WIN32} stdcall ; {$endif}
  现在我们为函数加入代码在implementation后面:
       const
      OKOnly=0;
      OKCancel=1;
      AbortRetryIgnore=2;
      YesNoCancel=3;
      YesNo=4;
      RetryCancel=5;
      Critical=16;
      Question=32;
      Excalamation=48;
      Information=64;
      DefaultButton1=0;
      DefaultButton2=256;
      DefaultButton3=512;
      ApplicationModal=0;
      SystemModal=4096;
  function StrToPch(Str:string):PChar;
      var a:PChar;
      begin
        a:=StrAlloc(Length(Str)+1);
        StrPCopy(a,Str);
        StrToPch:=a;
      end;
  function MsgBox(msg:string;mbType:
  Word;title:string):WORD;
   VAR
    LpText,lpCaption:Pchar;
    h:HWND;
    begin
    lpText:=StrToPch(title);
     lpCaption:=StrToPch(msg);
      h:=GetActiveWindow();
      MsgBox:=MessageBox(h,lpText,lpCaption,mbType);
    end;
  3.创建资源文件 
  
  最后我们要做的事情是创建资源文件,这样authorware才能直接调用函数。必须先创建.rc文件然后编译成.res文件。使用记事本创建.rc的资源文件。加入如下定义:我将在后面解释这些定义: 
  
  1 DLL_HEADER PRELOAD DISCARDABLE 
  BEGIN 
       "MsgBox

来源:http://www.tulaoshi.com/n/20160219/1619151.html

延伸阅读
    很多应用软件在启动时往往会显示“日积月累”之类的窗口,其中动态显示了与软件相关的内容或名言佳句等,这在VB中容易实现,而在Authorware中更是易如反掌。。请跟我来:     相关素材:首先,用截图软件取得其它程序“日积月累”的图片picture.jpg,当然也可用VB做一个,注意一定要去掉其中的按钮部分。...
标签: Delphi
  1.建立临时表 数据输入是开发数据库程序的必然环节。在Client/Server结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客户端)建立临时数据表来存储用户输入的数据,待提交后,清除本地表数据。这种方法的好处是:提高输入效率,减小网络负担。 由于用户一次输入的数据量一般...
  需求 :由于最近接到这样的项目,甲方他们要求我们开发的功能加入他们原先已经存在的一个PB开发的应用程序中。唯一的目的是不想有两个exe应用程序。 方案 :把Delphi的应用程序用dll的形式打包,然后在PB里调用。 设计 :         一、 PB部分      ...
  关键词: Delphi;Word;Excel;报表;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 1.引言 在利用Delphi开发应用程序的时候,通常我们要设计出很多各种格式的文档、报表,经常要进行文件的创建、编辑及修改,虽然Delphi本身提供了很多设计报表的控件或方法,但是存在明显的不足,比如中文...
方案- Midas DCOM COM+ ASTA RemoteObject .NET 提供者 Borland微软微软http://www.astatech.comhttp://www.remobjects.com微软 核心技术 COMCOMCOMASTA自己的,类同Midas, 但ߎ...

经验教程

386

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部