当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 在一些涉及到多线程的程序设计中,线程常常有一些消息要发送到用户界面进行显示。
 

 

    摘要://欲实现点击dbgrid的title对查询结果排序,想作一个通用程序,不是一事一议,//例如不能在sql语句中增加order by ...,因为sql可能原来已经包含order by ...,//而且点击另一个title时又要另外排序,目的是想作到象资源管理器那样随心所欲。procedure tfrmchild.dbgrid1titleclick(column: tcolumn);var sql......
    摘要: unit imcode; // 简化版拼音反查单元 interface { imode 二进制功能位说明 x x x x x x x x x x x x x x x x 3 2 1 1: 0 - 只取各个汉字声母的第一个字母; 1 - 全取 2: 0 - 遇到不能翻译的字符不翻译; 1 - 翻译成 ? (本选项目针对全角字符) 3: 0 - 生成的串不包括非数字, 字母的其他字符; 1 ......


支持多线程的日志类,可以在线程中使用,用来与主窗口通讯

在一些涉及到多线程的程序设计中,线程常常有一些消息要发送到用户界面进行显示.这方面处理的方法很多,有通过消息传递.全局变量.管道等.这里给出了一种通过消息传递与全局变量相结合的处理的方法.并且把代码封装到一个tlog类中,使用方便.在这里与大家分享.

【程序编程相关:function GetVersion(

//tlog类说明部分,事实上该类是一个“日志队列” 【推荐阅读:Delphi 8 for .NET As

【扩展信息:发现d2005的使用问题: d2005会

const

  max_log_len=1024;

 

type

  tlog=class

  private

    flock:tcriticalsection;//互斥类,用于线程互斥访问

    //定义日志项循环队列--由于队列的特性,最多能保存max_log_len-1条日志

    flines:array [0..max_log_len-1] of string;

    fhead:integer;

    ftail:integer;

    //环队列定义结束

    fmsghandle:thandle;//消息接收窗口句柄

    fmsgid:integer;//消息id

    fmsgparam:integer;//消息参数,可以用来区分不同的日志对象

    function getisempty: boolean;

    function getcount: integer;

  public

    constructor create(const msghandle:thandle;const msgid,msgparam:integer);

    destructor destroy;override;

    procedure add(const line:string);

    procedure gets(lines:tstrings);

    procedure clear;

    property isempty:boolean read getisempty;

    property count:integer read getcount;

  end;


...   下一页
    摘要:unit dbgrid2excel; { 功能描述:把dbgrid输出到excel表格(支持多sheet) 调用格式:dbgridtoexcel([dbgrid1, dbgrid2]); 对于数字用asstring, 其它可能含有格式的文本用displaytext 长数字字符 的tag c_longnumber_fieldtag = 9; 避免科学计算格式,如身份证号的显示 自动采用对......
» 本期热门文章:

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