[PB+Delphi]主应用程序用的是PB操作界面调用Delphi开发的DLL

2016-02-19 18:25 11 1 收藏

今天图老师小编要向大家分享个[PB+Delphi]主应用程序用的是PB操作界面调用Delphi开发的DLL教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - 编程语言 】

 

  需求:由于最近接到这样的项目,甲方他们要求我们开发的功能加入他们原先已经存在的一个PB开发的应用程序中。唯一的目的是不想有两个exe应用程序。
  方案:把Delphi的应用程序用dll的形式打包,然后在PB里调用。
  设计
          一、 PB部分
                   1、新建一个非可视化的类n_cst_demo,我们把同一模块的调用都放到 这个类里。  
                   2、定义API调用。在Declare---Local External Functions里定义
                         //handle : 是当前窗口的句柄  ; param : 其他需要的参数 
                         SUBROUTINE  show_demo(uLong handle , String param) LIBRARY "Project1.dll"
                   3、新建一个窗体w_main。
                   4、新建一个菜单m_dll。
                   5、建一个菜单项就叫测试dll。Clicked事件里写上:
  

  

n_cst_demo n_pda

  n_pda = Create n_cst_demo

  n_pda.Show_Demo( Handle(ParentWindow) ,"ABCD1234")

  Destroy n_pda

            这样我们的PB部分就算完成了。
     

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

     二、Delphi部分
           1、新建一个dll Project,    

      2、新建一个Form1。保存。
        3、在project里写上代码:
  

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  
  

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  //记住,在Delphi里字符串参数需要用PChar类型定义
  
 oldHandle := Application.Handle ;
   //把DLL的应用的句柄改为PB里的窗口的句柄
   //目的是为了达到DLL和PB的可执行文件是属于一个应用程序
   //效果:打开DLL里的窗口后,在任务栏里不会多出现一个图标

   Application.Handle := handle ;
   Application.CreateForm(TForm1, Form1);
   try
        Form1.s_param := StrPas( param );
        Form1.ShowModal;
   finally
        Form1.Free;
        Application.Handle := oldHandle ;
   end;
  end;

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)       4、编译后,将project1.dll放到pb的文件夹下就可以运行了。

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

延伸阅读
标签: Delphi
  13.1 数据库系统概述         数据库系统为我们提供了一种把与我们的工作和生活紧密相关的信息集合在一起的方法,它还提供了在某个集中的地方存储和维护这些信息的方法。数据库系统主要由三大部分组成:数据库管理系统(DBMS:它是专门负责组织和管理数据信息的程序)、数据库应用程序(它使...
  显式例子:  ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> unit Main;   interface   uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, DBTables, D...
标签: Delphi
1、选择"file\new\other"于new items对话框中选择activex选项,在其中选择建立activex form。此时会弹出一个对话框用于输入你所建立activex组件的名称、object pascal程序单元名称、项目名称等。还有一些activex包含版本控制编号等可选项,可以按缺省的设置直接点击ok即可。 2、现在你可以在打开的工程中来设计你的程序了,这里和一...
  Windows 可以将多个显示器映射为虚拟桌面,使我们可以利用这一点设计出方便工作的应用程序。例如 PowerPoint 就充分发挥了双显示器的优势(大多数的笔记本电脑都支持),它可以在一个显示器上播放幻灯片,而在另一个显示器上显示备注,可以控制播放的进程,使使用者做商务演说的时候非常等心应手。那么我们怎么开发这种应用程序呢?这篇...
标签: Delphi
  一 Dll的制作一般步骤 二 参数传递 三 DLL的初始化和退出清理[如果需要初始化和退出清理] 四 全局变量的使用 五 调用静态载入 六 调用动态载入 七 在DLL建立一个TForM 八 在DLL中建立一个TMDIChildForM 九 示例: 十 Delphi制作的Dll与其他语言的混合编程中常遇问题: 十一 相关资料 ...

经验教程

618

收藏

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