当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 在平时写程序时,总是碰到窗体(TForm)与线程(
 

 

 ·delphi 水晶报表打包解决     »显示摘要«
    摘要:开发环境: delphi6.0及水晶报表9.2 (程序中以bde连接设计报表)打包工具: installshield developer v8.02打包必备: iinstallhields8.0 1. mouules: license.msm;rdcdesigntime.msm;rdcruntime.msm;reportengine.msm 添加以上mouules:在license中输入水......
    摘要:http://dev.csdn.net/article/53/53442.shtm如何将几个dbgrid里的内容导入同一个excel表中?在软件实际制作中,为节省开发成本和开发周期,一些软件人员通常会吧dbgrid中的数据直接导出到excel表中,而先前能看到的函数仅仅只能在workbook的一个sheet中导入数据,不支持多sheet!。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~......


Delphi关于线程的消息处理
在平时写程序时,总是碰到窗体(tform)与线程(tthread)消息通信问题.令人烦恼的是窗体不能向线程(tthread)发送消息(线程没有窗口句柄).经过几天的折腾,想出二种解决方案,拿出来跟大家探讨探讨.

unit messagehandle; 【程序编程相关:COM 中的服务器和对象(翻译)

第一.我们知道vc++ 中的mfc类库是自已封装了消息处理(beginmessage, endmessage),在mfc中对消息的处理是通过建立一张消息映射表,而把方法(function)或过程(procedure)的地址保存到映射表里(消息处理实质上是方法或过程的调用),再加上一个消息分发机制,来实现消息的接收发送 <详见vc++技术内幕>.所以我们只要为线程里建立一张消息映射表,并建立相应的消息分发机制.这样就可以处理窗体发送到线程的消息.以下代码是实现消息映射表与消息分发的类(详见 <..\消息处理设计(线程)1\messagehandle.pas> 中 ) 【推荐阅读:用Delphi编写自己的可视化控件

interface 【扩展信息:delphi2005探讨之二

 

uses messages,classes,sysutils,dialogs;

 

const pmsg_base = $be00;   //自定义消息基址;

      pmsg_num = 200;      //消息表大小;

 

{**自定义消息处理类

  *;功能 = 建立自定义消息表,处理线程之间

  *   以及与主窗体之间的自定义消息(宏观)

*}

 

  //消息处理句柄

  tmessagehandle = procedure(var message: tmessage) of object;

 

  tpdispatcher = class(tobject)

  private

    //消息对应表(消息id为数组下标);

    messagehandles: array of tmessagehandle;

    //从消息id得到数组id

    function getindexfrommsgid(const amessageid: cardinal): integer;

  public

    constructor create;

    destructor destroy;

    //发送消息


...   下一页
    摘要:unit tray; interfaceuses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs,registry,shellapi, comctrls, stdctrls, buttons, menus, extctrls; const icon_id=3; nif_info......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE