delphi相关
裸奔的蜗牛
知其然,更要知其所以然。
展开
-
Delphi内存映射文件例子
unit FileMap; interface uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,StdCtrls,Dialogs; type TFileMap=class(TComponent) private FMapHandle:THandle;转载 2007-07-19 17:15:00 · 4608 阅读 · 1 评论 -
pascal指针
大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。Basic不支持指针,在此不论。其实,Pascal语言本身也是支持指针的。从最初的Pascal发展至今的Object Pascal,可以说在指针运用上,丝毫不会逊色于C语言的指针。 以下内容分为八个部分,分转载 2007-09-21 13:28:00 · 3202 阅读 · 0 评论 -
模拟语音卡
Delphi之东进模拟语音卡(D160A)可复用源码网友急需,先开源吧,文档过几天慢慢补。作者:成晓旭设计简介:1、 将卡、通道分别单独进行设计与封装。2、 所有的外部操作接口都封装在卡类这一类。3、 在我的项目中,在卡类这一级还增加了适配器或者代理,分别实现了Adapter或Proxy模式;以尽可能地解耦卡设备的实现细节与具体应用业务之间的关系。因转载 2007-09-26 16:24:00 · 864 阅读 · 0 评论 -
字符串加密
自己独立设计的字符串加密算法 作者:成晓旭这是本人自行设计的第一个数据加密算法,当初是想设计成分组的对称加密算法,但后来工作一忙,就没有实现,就草草完成便开始应用起来了。但是目前的混淆度已经能够满足绝大多数的简单加密应用。1、 简介:设计一个算法,对字符串进行加密和解决,要求有一定的混淆度,并且,无须复杂的密钥管理。为简化应用,我将混淆码(类似于密钥)直接混淆存储在加密后密文中转载 2007-09-26 16:25:00 · 5273 阅读 · 0 评论 -
Delphi多线程编程中的技巧
(1)创建线程 MsgThread := TMsgThread.Create(False) ; //创建并执行线程 MsgThread := TMsgThread.Create(True) ; //创建线程后挂起 constructor Create(CreateSuspended: Boolean); 中的参数CreateSuspended表示创建后是否挂起线程。 (2)设置线程里没有设置循环执转载 2007-10-29 16:51:00 · 957 阅读 · 0 评论 -
Sender:TObject和Self
1.Sender 多数出现在事件处理过程中,Sender表示触发该事件的对象. 每一个事件处理里面至少都有一个Sender参数。Sender的含义就是代表调用这个过程的控件. 由于Sender是TObject,TObject,是所有类的基类,所以任何对象都可以赋给Sender. EG: 当你点击BUTTON1时,会产生一个Button1Click事件,系统会把Button1传递给Button1C原创 2007-10-10 08:50:00 · 2374 阅读 · 1 评论 -
Delphi中的线程类--之(4)
导读: Delphi中的线程类 猛禽[Mental Studio] http://mental.mentsu.com 之四 临界区(CriticalSection)则是一项共享数据访问保护的技术。它其实也是相当于一个全局的布尔变量。但对它的操作有所不同,它只有两个操作:Enter和Leave,同样可以把它的两个状态当作True和False,分别表示现在是否处原创 2007-11-01 11:57:00 · 531 阅读 · 0 评论 -
Delphi中的线程类 - TThread详解_LAVA WORLD [技术收集]
摘录:句柄可以认为是系统对资源(如线程)的分配的一个编号。关闭这个编号,对于不同的资源,效果不尽相同。对于线程来说,关闭这个编号并不意味着终止线程,只是之后很难再操纵这个线程。 这就好比摘掉了门牌号,并不伤害这一家人,只是以后往这送信就麻烦些了。 还有,如果主线程只想创建线程,而并不想之后再查询或操纵它,那么及时关闭句柄是个好习惯,免得当时没关,以后又忘了,于是泄漏了系统的转载 2007-11-01 12:40:00 · 926 阅读 · 0 评论 -
DELPHI串口编程剖析
DELPHI串口编程剖析 1第一章 背景知识 31. 概述 32. 什么是接口? 33. 接口分类. 34. 为什么需要I/O接口? 35. I/O接口的功能 46. I/O接口的通信方式 57. I/O接口的分类 58. 串口的分类 89. 串口通信分类 1110. 奇偶校验 12第二章 串口通信编程简介 131. 串口的通信编程流程 132. Unix平台下对串口进行开发的方法 133. Wi转载 2007-10-12 11:11:00 · 5138 阅读 · 0 评论 -
关于delphi线程同步的实例(教材上没有,作该文之前网上也没有)
导读: (原创)关于delphi线程同步的实例(教材上没有,作该文之前网上也没有) 三、 通过事件同步主线程与从线程的实例 ▲ 实例定义了一个主类: Tlistfile。该类主要是根具recmail变量,把它存入一个文件或从一个文件中读取出来。在该类上可实现:两个或多个应用程序之间通过文件进行异步问答式通讯。所谓问答式异步通讯是:一个程序发问,只有等到其他程序回答后才能继续发问原创 2007-11-01 11:25:00 · 1243 阅读 · 0 评论 -
api串口通信实例
我这里有一个示例程序,功能不是很强,但是学习串口API编程还是可以的: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialog转载 2007-10-15 17:56:00 · 3523 阅读 · 0 评论 -
控件编程-Notification
组件原码procedure TComponent.Notification(AComponent: TComponent; Operation: TOperation);var I: Integer;begin if (Operation = opRemove) and (AComponent RemoveFreeNotification(AComponent);转载 2007-11-19 17:44:00 · 672 阅读 · 0 评论 -
给自定义控件加上图标
第一步:定义.dcr资源文件1.delphi->Image Editor->创建.dcr 资源文件。 其中的图标的名字要与组件类型名一致,图标文件的名称要大写。.dcr文件名与组件单元名一致。 将.dcr文件放到组件的当前目录下。2. eg: 如果组件类名称为TJecIcon ,那么位图的名称为 TJECICON ,如果组件单元的名称为uIcon.pas原创 2007-11-21 16:40:00 · 694 阅读 · 0 评论 -
Tlist
导读: 中有可以保存自己定义的各种结构。如果将他们两个结合起来使用会是什么情况呢? 试想一下,如果在游戏中如果突然有哪个玩家断线,那么即便是我们知道这个玩家的Socket,但是要从所有玩家中检索出他的信息,也不是一件容易的事。 那我们为什么不能将Hash表和Tlist结合使用呢。在我开发的游戏中,我就是将Hash表和Tlist同时使用,来对玩家断线做相关的处理。 今天我就简原创 2008-01-14 09:53:00 · 703 阅读 · 0 评论 -
delphi的取整函数round、trunc、ceil和floor
delphi的取整函数round、trunc、ceil和floor 1.Round(四舍六入五留双) 功能说明:对一个实数进行四舍五入。(按照银行家算法)例:var i, j: Integer;begin i := Round(1.5);// i等于2 j := Round转载 2015-03-26 10:05:32 · 529 阅读 · 0 评论 -
模式和非模式对话框
Delphi的模式窗体两种方式:方式1、procedure TForm1.Button1Click(Sender: TObject);begin Form2 := TForm2.Create(Application); try if Form2.ShowModal=mrok then showmessage(ss); {其它操作} finally Form2.原创 2007-09-17 14:24:00 · 714 阅读 · 0 评论 -
spcomm
Delphi是一种具有功能强大、简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选择 Delphi作为开发工具编制各种应用程序。但是,美中不足之处是 Delphi没有自带的串口通信控件,在它的帮助文档里也没有提及串口通信,这就给编制通信程序的开发人员带来许多不便。转载 2007-09-17 15:03:00 · 1026 阅读 · 0 评论 -
socket
unit MScktComp; interface uses SysUtils, Windows, Messages, Classes, WinSock, SyncObjs;const CM_SOCKETMESSAGE = WM_USER + $0001; CM_DEFERFREE = WM_US转载 2007-07-19 18:01:00 · 1252 阅读 · 0 评论 -
线程同步实例
通过事件同步主线程与从线程的实例▲ 实例定义了一个主类: Tlistfile。该类主要是根具recmail变量,把它存入一个文件或从一个文件中读取出来。在该类上可实现:两个或多个应用程序之间通过文件进行异步问答式通讯。所谓问答式异步通讯是:一个程序发问,只有等到其他程序回答后才能继续发问。在一个时刻只能有一个程序使用该通讯文件,并且发送信息时必须进快完成。▲该类约定了存取所用的文件是原创 2007-07-19 14:00:00 · 710 阅读 · 0 评论 -
校验和计算
http://www.lammertbies.nl/comm/info/crc-calculation.html?crc=12345678&method=hex CRC算法原理及C语言实现 -来自(我爱单片机) 摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控制器硬件环境的C语言程序。读者更能根据本算法原理,用不同的语言编写出独特风格更加实用的CRC计算程序转载 2007-07-19 17:53:00 · 1847 阅读 · 0 评论 -
测试2
基于过程的软件测试全景图,是对基于内容的 软件测试内容全貌——全景图(1) 的补充,从而对软件测试有一个较完整的描述。借助这张全景图,更好理解从需求、设计验证开始直至产品发布的整个测试过程,以及慢慢体会如何做好测试工作的每一个环节,不漏过任何一个环节,包括测试项目背景的掌控、沟通等等。转载 2007-07-20 15:40:00 · 410 阅读 · 0 评论 -
Delphi的TRegistry注册表类方法详解
●GetDataInfo方法Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean;TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinterger,rdbinary);TregDataInfo=record Regd转载 2007-07-24 14:10:00 · 655 阅读 · 0 评论 -
delphi编码规范
1.规范简介XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。 2.单元转载 2007-07-20 13:43:00 · 791 阅读 · 0 评论 -
测试
【全景图一】 思路更清楚。一方面,从质量管理的思想出发,定义测试的目标和测试的范围,然后通过相应的测试方法实现测试目标。这些方法自然被应用于测试用例的设计,而设计出来的测试用例被执行,而执行的手段有手工测试和自动化测试。设计测试用例的目的,就是为了更快、更全面地发现缺陷。另一方面,测试的管理思想也应源于客户的需求、源于组织的质量方针。测试管理要覆盖整个测试生命周期中的各个阶段,每个阶转载 2007-07-20 15:39:00 · 435 阅读 · 0 评论 -
delphi异常处理
Delphi异常处理与调试3.1 Delphi异常处理3.1.1 异常处理的意义所谓异常,可以理解为一种特殊的事件。当这种特殊的事件发生时,程序正常的执行流程将被打断。异常处理机制能够确保在发生异常的情况下应用程序不会中止运行,也不会丢失数据或资源。Object Pascal定义了大量的异常处理对象,使应用程序几乎能够处理所有的异常情况,并且对异常处理的语法作了简化。异常处理不再仅仅是高级转载 2007-07-19 13:46:00 · 8754 阅读 · 1 评论 -
多线程ADO编程
在 Delphi 帮助文档,《 Using the main VCL thread 》我找到了下面一段话: …… Data access components are thread-safe as long as each thread has its own database session component. The one exception to this is when you原创 2007-07-20 12:53:00 · 1149 阅读 · 0 评论 -
Delphi多线程下的ADO编程
Delphi多线程下的ADO编程 前言:几个月前接到一个任务:将一后台程序访问数据库的方式从BDE改为ADO,原因是由于业务量的增加,通过BDE不论是向数据库写入数据还是从数据库中读出数据的速度都变得无法忍受,大家都知道ADO在数据库访问速度方面比BDE要快的多了(我写了一个测试程序使用ADO比使用BDE快了近100倍!)。这个任务还不简单嘛,只要将BDE的控件更换成ADO的再修转载 2007-07-25 16:11:00 · 1703 阅读 · 0 评论 -
synchronize
1。synchronize方法的产生与vcl的局限性有关,因为vcl控件在同一时刻只能被单线程访问,如果多个线程同时访问vcl,vcl会出现问题。所以问了安全地访问vcl,Tthread类提供了一个方法叫synchronize,他可以让线程中的方法在主线程中执行,所以我们可以把访问vcl的代码都放在这个方法中,然后由主线程执行,从而确保vcl能被安全地访问调用.它的类型是TThreadMethod原创 2007-08-03 08:41:00 · 767 阅读 · 0 评论 -
delphi常用函数
_HELP函数集●●●●●●●------------------------------------------------------------------abs(x) 绝对值arctan(x) 反正切cos(x) 传回馀弦函数值exp(x) e的x次幂frac(x) 取小数部分int(x) 取整ln(x) 自然对转载 2007-08-08 09:43:00 · 3432 阅读 · 0 评论 -
delphi消息
Delphi是Borland公司的一种面向对象的可视化软件开发工具。 Delphi集中了Visual C++和Visual Basic两者的优点:容易上手、功能强大,特别是在界面设计、数据库编程、网络编程方面更有其独特的优势。 Delphi中的消息 消息是Windows发出的一个通知,它告诉应用程序某个事件发生了。在Delphi中,大多数情况下Windows的消息被封装在VCL的事转载 2007-08-20 14:37:00 · 1503 阅读 · 0 评论 -
静态数组和动态数组
静态数组和动态数组不同,静态数组是在栈内存中自动分配,一旦静态数组声明了,编译器就自动在栈进行分配了。如你声明的a,就分配了16个字节的内存空间。而动态数组不同,动态数组实际上就是指针。只不过是个特殊点的指针,和string类型差不多。声明了一个动态数组,只是声明了一个四字节的指针。必须通过setlength给动态数组分配内存空间。所以 type TArray = ar转载 2007-08-22 16:27:00 · 1472 阅读 · 0 评论 -
String,PChar,PByte,Array of Char,Array of Byte 转换
var s:string; pc:pchar; pb:pbyte; ac:array[1..100] of char; ab:array[1..100] of byte; i:integer;begin s:='this is a test'; pc:=pchar(s); //string->pchar pb:=pb原创 2015-04-01 14:47:54 · 602 阅读 · 0 评论