- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 delphi 实现虚拟打印, 远程集中打印
技术重点:说白了就是利用已安装在电脑中的打开印驱动, 打印出Prn文件.再用Prn文件在其它地方相同驱动的打印机上打印.1.从注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers)中读出要监控的打印机的端口(Port)和设置(Attributes)保存备份.2.在注册表(
2012-01-31 10:54:47
5250
原创 之前用Delphi随手写的软键盘SoftKeyBoard
之前用Delphi随手写的软键盘SoftKeyBoard源码下载:http://download.youkuaiyun.com/detail/yepemig/623805
2012-01-31 10:16:56
2639
原创 结算日
procedure TForm1.Button1Click(Sender: TObject);var d1: TDateTime;begin d1 := IncDay(now,27 - DayOf(now)); //27 为每个月27号为结算日期,也可以改成1号为结算日 d1 := IncDay(now,1 - DayOf(now)); Label3.Caption := 结
2009-02-06 21:50:00
803
原创 物料规格描述规则
物料规格描述规则1.电阻材质/名称+阻值+误差+功率+封装尺寸规定:阻值(Ω/KΩ/MΩ)+误差(±/+/-)+功率(分数/整数)2.电容材质/名称+容值+耐压+误差+封装尺寸+耐温规定:容值(PF/UF/NF)+耐压+误差(±/+/-)3.电池名称+材质+电压值+容量+尺寸4.电位器名称+材质+阻值/特性+电流+误差+功率+封装尺寸5.IC型号+封装+制造商(品牌)+供应商+备注(代表烧录
2009-02-06 21:48:00
3835
原创 delphi 中的一个线程池单元的归纳说明
unit Ut_CustomThread;interfaceuses Classes, SysUtils, SyncObjs,Ut_ResourceStrings,Windows;Type //基本线程类 TBaseThread = class; //线程错误处理类 EThreadException = class(Exception); //线程等待错误处理类 EThread
2009-02-06 21:46:00
2144
转载 Delphi中的线程类(5,大结局)
回到前面CheckSynchronize,见下面的代码:function CheckSynchronize(Timeout: Integer = 0): Boolean;var SyncProc: PSyncProc; LocalSyncList: TList;begin if GetCurrentThreadID raise EThread.Cre
2009-01-14 20:12:00
827
转载 Delphi中的线程类(4)
临界区(CriticalSection)则是一项共享数据访问保护的技术。它其实也是相当于一个全局的布尔变量。但对它的操作有所不同,它只有两个操作:Enter和Leave,同样可以把它的两个状态当作True和False,分别表示现在是否处于临界区中。这两个操作也是原语,所以它可以用于在多线程应用中保护共享数据,防止访问冲突。用临界区保护共享数据的方法很简单:在每次要访问共享数据之前调用En
2009-01-14 20:11:00
700
原创 Delphi中的线程类(3)
说完构造函数,再来看析构函数:destructor TThread.Destroy;begin if (FThreadID begin Terminate; if FCreateSuspended then Resume; WaitFor; end; if FHandle inherited Destro
2009-01-14 20:08:00
853
转载 Delphi中的线程类(2)
首先就是构造函数:constructor TThread.Create(CreateSuspended: Boolean);begin inherited Create; AddThread; FSuspended := CreateSuspended; FCreateSuspended := CreateSuspended; FHandle := Be
2009-01-14 20:06:00
1220
转载 Delphi中的线程类(1)
猛禽[Mental Studio]http://mental.mentsu.com( 之一)Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。
2009-01-14 20:05:00
753
转载 CreateWaitableTimer和SetWaitableTimer函数
用户感觉到软件的好用,就是可以定时地做一些工作,而不需要人参与进去。比如每天定时地升级病毒库,定时地下载电影,定时地更新游戏里的人物。要想实现这些功能,就可以使用定时器的API函数CreateWaitableTimer和SetWaitableTimer来实现了,这对API函数创建的时钟是比较精确的,可以达到100倍的10亿分之一秒。 函数CreateWaitableTimer和SetWaitab
2009-01-14 20:01:00
1170
原创 Windows中的计时器(SetTimer和CreateWaitableTimer)
Windows中的计时器(SetTimer和CreateWaitableTimer) Timers (SetTimer and CreateWaitableTimer) in Windows 1.SetTimer下面的例子创建了一个计时器(不与窗口相关联),该计时器过程函数建了20个消息框。The following example creates a timer (that
2009-01-14 01:50:00
2375
原创 CreateSemaphore 创建信号灯, 一种内核对象的同步方式
创建信号灯, 一种内核对象的同步方式 使用步骤如下 1,创建信号灯 HANDLE hCounter = CreateSemaphore(NULL,2,2,"iCounter") 2,打开信号灯 hCounterIn=OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,"iCounter") 3,等待
2009-01-14 01:47:00
1022
转载 TList, List.Pack 清除所有已是 nil 的对象
// Add、Count、Items[n]var List: TList; {声明 List} frmRed: TForm; {用于测试的对象, 这里选择了窗体}begin List := TList.Create; {建立列表} frmRed := TForm.Create(n
2009-01-14 01:27:00
1028
1
转载 assert() 函数用法
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include #i
2009-01-14 01:24:00
488
原创 CreateEvent
函数状态: 翻译/整理完成 ,建设者:s_gao ,最新更新时间: 2004-8-13 17:45:55 修改该函数 函数功能描述:创建或打开一个命名的或无名的事件对象函数原型:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性 BOOL bManualReset,
2009-01-14 01:19:00
831
转载 Delphi多线程处理(转载)
Delphi多线程处理(转载) 1-1 多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感
2009-01-13 00:39:00
1614
1
转载 Hook 概念
来自csdn 作者rivershan一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出
2009-01-12 22:50:00
743
转载 在Delphi中调试COM+
由于COM+是执行在COM+的执行环境中,因此Delphi 的程序员无法像Delphi的分布式多层应用系统一样可以直接在 Delphi 的IDE 中设定应用程序服务器的断点来调试。 事实上, Delphi 仍然可以在 Delphi 的集成开发环境中调试 COM+组件,也可以让程序员在集成开发环境中在COM+组件的程序单元中设定断点,然后执行客户端应用程序调用 COM+组件。此时 Delphi
2009-01-12 22:49:00
670
转载 PGN,图像界面,换肤色
软件的“换肤”技术早已不是什么新鲜事了,但细心的朋友一定已经发现了,现在正悄悄地流行了一种新的改善视觉效果的方法——这里我斗胆定义为“换肤色”技术吧!用过Winamp 5、Windows MediaPlay 9、MSN Messenger 6、QQ2004这些新版本软件了吧,呵呵,全都采用了所谓换汤不换药的“换肤色”技术。挺有意思是吧,下面我们就“自己动手,丰衣足食”。 首先我用e
2009-01-12 22:47:00
1265
原创 [delphi]New 和 GetMem 的不同之处
New 和 GetMem 的不同之处2006-12-23 14:56如果操作一个 record 指针中的字符串变量,会不会丢失 string 的内 存空间,造成内存泄漏? 结果是:使用 New() 分配的内存,会自动初始化 record 的内容,并且在 Dispose 时自动 清除所有已分配的内存,包括 string 或其他动态数组的内存。GetMem/FreeMem 没有这个 性质。事实上,N
2009-01-12 22:42:00
651
原创 后台调用外部程序的完美实现
后台调用外部程序的完美实现转载:http://www.delphibbs.com/keylife/iblog_show.asp?xid=29480最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启动后,将那个软件打开,在需要的时候,对其中的一个文本矿设置一些文字,再点击一个按钮就可以了。说到这里,相信你
2009-01-12 22:40:00
591
原创 浅谈DELPHI指针
浅谈Object Pascal的指针 作者:Nicrosoft 阅读:5421 次 时间:8/26/2001 来源:Nicrosoft个人网站 大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。Basic不支持指针,在此不论。其实,Pascal语言本身
2009-01-12 22:38:00
497
原创 DELPHI 线程池代码
unit uThreadPool;{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }interfaceuses Windows, Classes;// 是否记录日志// {$DEFINE NOLOGS}type TCriticalSection = class(TOb
2009-01-12 22:35:00
837
原创 GetModuleHandle函数
GetModuleHandle函数2007-08-17 14:01当一个文件被映射到调用进程的地址空间时,GetModuleHandle函数得到其中某一模块的句柄。 使用GetModuleHandle函数格式:HMODULE GetModuleHandle( LPCTSTR lpModuleName); 参数 lpModuleName: [in]用
2009-01-12 22:34:00
1648
转载 TIdHttpServer端
#include #include #pragma hdrstop#include "Unit1.h"#include "Global.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"T
2009-01-12 22:32:00
3485
转载 使用indy的IdHTTPServer控件
unit Unit1;interfaceuses...... ActiveX,IdBaseComponent, IdComponent, IdCustomTCPServer, IdCustomHTTPServer,IdHTTPServer,IdTCPServer,IdContext;type......procedure Server1CommandGet(AContext: T
2009-01-12 22:30:00
3967
转载 用Idhttp.post方法将客户端的文本提交给服务器的范例
var strMsg:string; sParams: TStringStream;begin sParams := TStringStream.create();IdHTTP1.Request.ContentType := application/x-www-form-urlencoded; try sParams.WriteString(参数1=结果&参数2=结果
2009-01-12 22:27:00
1882
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人