- 博客(45)
- 资源 (2)
- 收藏
- 关注
原创 代码的静态检查
静态检查能检查出哪些问题?变量未初始化空指针引用数据类型不匹配返回局部变量数组字符串边界溢出内存泄露……code review 工具列表1.代码格式检查checkstyle; 2.性能安全最佳实践检查RAD Software Analyzer和FindBug; 3.依赖检查JDepend; 4.重复性检查eclipse PMD插件;
2013-08-17 11:29:54
1244
转载 HLT与LLT测试
HLT:HIGH LEVEL TEST,通常指SDV/SIT/SVT等测试活动HLT自动化测试是站在系统的角度对整个版本进行的测试,它测试的对象是一个完整的产品而不是产品内部的模块,关注的是产品外部的可见属性。通常使用黑盒测试技术,常见的HLT包括系统测试与验收测试。SDV : system design verification 系统设计验证 SIT : system integr
2013-08-17 11:09:55
6906
原创 wise打包java程序报错解决办法
开发RCP程序, 导出可执行文件后使用wise制作安装程序。制作的安装的程序,安装过程过程中总是会抛出错误,但是并不影响安装程序的使用。解决办法: 打开wise脚本, 找到wise脚本中的jdk下的所有DLL文件,双击取消自动注册功能即可。
2011-07-22 00:04:52
1101
原创 关于高亮显示括号匹配的算法(delphi)
环境: SynEdtor控件 + delphi匹配括号的算法:传入参数 APoint: TBufferCoord;const Brackets: array[0..7] of char = ('(', ')', '[', ']', '{', '}', '');va
2011-07-21 23:50:45
2072
转载 MSHTML innerhtml属性
简单的说: innerhtml就是把东东插入此对象的二个HTML代码之间,并清空旧的中间的东东, 如a_id.innerHTML = "dddd";本来的kkkk变成dddd 补充说明: 就是在对象的的二个HTML格式符之间清空原来的内容,再插入新内容,而OUTERHTML是把对象本身包含子对象清空,然后在它这个位置插入新的内容,而INNERTEXT却是
2009-10-07 12:26:00
882
原创 RichEdit控件加载背景图片
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ComCtr
2009-10-06 16:28:00
3263
原创 CriticalSection
unit uNoCriticalSection;{ 能不能让它们别打架, 一个完了另一个再来? 这就要用到多线程的同步技术. 前面说过, 最简单的同步手段就是 "临界区". 先说这个 "同步"(Synchronize), 首先这个名字起的不好, 我们好像需要的是 "异步"; 其实异步也不准确... 管它叫什么名字呢, 它的目的就是保证不冲突、有次
2009-10-05 22:48:00
871
原创 ListBox填充背景,图标,文字
ListBox填充背景,图标,文字 procedure TForm1.ListBox2DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);var AIcon: TIcon; I, K : Integer; ARect, BRect: TRect; H : Integ
2009-10-05 16:47:00
1275
转载 IM即时通讯实现原理
即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。而后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议。 QQ就是使用U
2009-10-04 17:03:00
10847
原创 VarArrayLock的使用
VarArrayLock Locks a variant array and returns a pointer to the data procedure Variant2Stream(const v: OleVariant; Stream: TMemoryStream);var p: Pointer;begin Stream.Position := 0; Stream.
2009-10-03 11:32:00
1854
转载 packed record与record区别
在windows中内存的分配一次是4个字节的。而packed按字节进行内存的申请和分配,这样速度要慢一些,因为需要额外的时间来进行指针的定位。因此如果不用packed的话,delphi将按一次4个字节的方式申请内存,因此如果一个变量没有4个字节宽的话也要占4个字节!这样就浪费了,你可以用packed关键字取消这种优化。例子: type myrec = pack
2009-10-02 21:56:00
1184
原创 Video
p_af_AvSenderProj1.ocx 接口: property VideoIP: WideString dispid 18;//视频IP property AudioDrvIndex: Integer dispid //19;音频IP proper
2009-10-02 19:09:00
1182
原创 软件术语及名次
CRUD是指在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。 In computing, CRUD is an acronym for create, retrieve, update, and delete. It is used
2009-08-29 00:10:00
891
转载 Java相关资料官方下载链接
JDK1.6官方下载_JDK6官方下载_JDK1.6API(chm)下载_JDK6APICHM中文参 JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-w
2009-07-28 22:21:00
904
原创 XML简单操作(delphi)
创建一个简单xml文件: 1、可以使用Internet控件面板上的TXMLDocumnet控件2、写xml文件如下:var strFileName: string; rootNode, ANode: IxmlNode;begin //创建XML文件 strFileName:= ExtractFilePath(Application.ExeN
2009-07-26 21:43:00
698
原创 SQL表结构转换(一个SQL面试题)
将TestA转换成TestB的结构/*************************************************************************************TestA TestBCode Value
2009-07-20 20:07:00
1031
转载 delphi三层程序(简单配置)
所谓三层:(1) 客户端(2) 服务器端(3) 数据库 在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。 在Delphi中可以使用Socket或者Dcom来连接他们相互间的通讯。如果使用Scocket在系统使用时必须提供Scocket连接器,而Dcom则不用。客户端和服务器的连接需要Broker来联系。环境为winxp sp2 + delph
2009-07-19 10:21:00
1346
1
原创 奇偶校验和循环冗余校验
网络原理总结(一) 目前局域网传输采用的IEEE802.3的以太网协议方式。 网络数据传输采用曼彻斯特码编码形式,全是"0", "1"的二进制比特(位)流。 为了保证数据传输的正确性,大多采用两种形式进行数据传输校验。 一、奇偶校验如下两种方式: 思想:通过增加冗余位使得源数据中“1”的个数恒为奇数或偶数。当源数据中“1”的个数为偶数的时候,这个校验位就
2009-06-28 00:26:00
2980
原创 存储介质读取速度问题
题目:CPU访问内存的速度比访问下列哪个储存设备要慢() A 寄存器 B 硬盘 C 软盘 D 高速缓存 E光盘 答案: AD寄存器在CPU内部,是CPU的一部分,高速缓存在CPU外部,是CPU的附加装置。 寄存器、高速缓存和内存都是随机访问存储器。光盘、硬盘、软盘是半随机访问存存储器。 寄存器和高速缓存都是用SRAM构成,SRAM是触发器电路,速度极快。 内存是用D
2009-06-28 00:17:00
2180
转载 WINAPI和CALLBACK这两个宏有什么区别
stdcall _cdecl _pascal _fastcall这些关键字是什么意思,有什么区别呢? 首先看MSDN里给出的解释,不过有些语焉不详哦 WINAPI ·Use in place of FAR PASCAL in API declarations. If you are writing a DLL with exported API entry points, you can u
2009-05-24 13:14:00
963
1
原创 高内聚,低耦合
设计模式好处:使程序更加灵活,容易修改,并且易于复用UML图的基本图示法:1.继承关系:三角形+直线 inherited/extended2.依赖关系:虚线+箭头 uses/import3.聚合关系:空心菱形+箭头 has4.组合关系:实心菱形+箭头 is5.关联关系:箭头 聚合表示的是一种弱的“拥有”关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分。举例:
2009-05-24 13:09:00
721
转载 什么是架构?
什么是架构由于在软件业迈向组件装配工业(software component industry) 的过程中﹐不断发现组件设计者对其组件之应用场合的预想环境与应用软件师的软体结构常无法完美地整合起来﹐导致应用软件师难以灵活地再使用(reuse) 他人设计之组件,造成软件组件工业成长上的瓶颈。OO软件专家也逐渐认识到其问题是来自于软件主架构的不相合(mismatch)。软件主架构的重要
2009-03-27 22:46:00
1156
转载 Dock技术
Dock 复杂界面的停靠上面的停靠功能可以满足简单界面的需求了,那么考虑一个复杂的界面停靠操作。假设你的项目经理要求你在主界面上放置两个面板,上面的面板上有一个工具条,下面的面板上也有一个工具条。两个面板上的工具条都停靠操作,但是有一个要求是上面面板的工具条只能停靠在上面的面板上,同样下面的工具条也只能停靠在下面的面板上。 当组件在要停靠的组件上被拖动时,会调
2009-03-14 01:29:00
2703
原创 delphi 指针
大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。Basic不支持指针,在此不论。其实,Pascal语言本身也是支持指针的。从最初的Pascal发展至今的Object Pascal,可以说在指针运用上,丝毫不会逊色于C语言的指针。以下内容分为八部分,分
2009-03-07 11:49:00
1086
1
原创 Excel Export, Import 逻辑实现
unit Unit2; interface uses windows, classes, variants, ComObj, sysUtils, DB, ADODB, Forms, ExtCtrls; Type TExlObj = class Timer1: TTimer; private FEx
2009-02-11 02:36:00
758
转载 消息
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的:type TMsg
2009-02-02 23:18:00
494
原创 SQL 分頁
CREATE PROCEDURE sp_SelectPage @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = *, -- 需要返回的列 @fldName varchar(255)=, -- 排序的字段名 @PageS int =
2009-01-25 17:07:00
581
原创 TStrings的使用
TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。 常规的用法大家都知道,现在来讨论它的一些高级的用法。 先把要讨论的几个属性列出来: 1、CommaText 2、Delimiter & DelimitedText 3、Names & values & valueFromIndex 先看第一个:CommaText。怎么用呢?用代码说话: const constr :
2009-01-25 17:05:00
802
原创 Delphi Stream 介绍
Stream对象,又称流式对象,是TStream、THandleStream、TFileStream、TMemoryStream、TResourceStream和TBlobStream等的统称。它们分别代表了在各种媒介上存储数据的能力,它们将各种数据类型(包括对象和部件) 在内存、外存和数据库字段中的管理操作抽象为对象方法,并且充分利用了面向对象技术的优点,应用程序可以相当容易地在各种Strea
2009-01-25 17:01:00
2738
1
原创 常用的几个自定义SQL
/****** Object: Stored Procedure dbo.sp_table_columnList Script Date: 2008-12-24 1:19:12 ******//********************************************************* 列出资料表所有记录 ****************
2009-01-25 16:59:00
792
原创 利用TFileStream快速复制文件
{快速拷贝文件的方法}Procedure CopyFile(SourceFile, DestFile: String);var sf, df: TFileStream;begin sf := TFileStream.create(SourceFile, fmOpenRead); //创建源文件流 try df := TFileStr
2009-01-25 16:54:00
790
转载 什么是迭代化开发?
迭代和科学的方法在为一个问题开发解决方案的过程中包括很多活动行为。我们需要理解待解决的问题,为一个潜在的解决方案收集需求,将这些需求转换至设计中,构建解决方案,并对方案进行测试。这个顺序非常自然,并且在一般情况下是正确地。然而,当我们试图将规模扩大时-也就是说,当我们按照一个严格的线性流程试图搜集所有的需求,并完成所有的设计,所有的开发,进行所有的测试时,一些问题就悄悄地出现了。因此,我
2009-01-25 16:52:00
2471
转载 RUP和IPD流程
RUP的过程改进,倡导针对不同类型项目进行适当的裁剪,实际上这也是一种灵活适应的方式、随需而变的思想。我对此是理解并赞同的,但是我对RUP却一直保持一种相对谨慎的态度。 对于RUP来说,首先,我认为它过于理想化和理论化,RUP 是过程组件、方法以及技术的框架,你可以将其应用于任何特定的软件项目,由用户自己限定 RUP 的使用范围。对于各种类型的软件项目,RUP并未给出具体的自身裁减及实施策略,总有
2009-01-25 16:51:00
622
原创 Delphi7的memu-Option在windows2003无法打开的问题
由于自己特别喜欢windows 2003操作系统, 但最近发现自己安装delphi7后,显示如下错误的信息提示:1、启动delphi7时,提示有一个dclisp70.bpl无法加载的错误提示。2、菜单下面的Option选项,无法打开总是,并出现提示对话框:Access violation at address 0012F88F. Write of address 0012F88F
2009-01-25 16:49:00
955
原创 MRP常用名词解释
MRP通用计算公式:净需求=毛需求+已分配量+安全库存-计划在途-实际在途-可用库存 毛需求量:不考虑库存、制造、采购的需求量,相对于净需求而言。 如果是独立需求,那么毛需求= 主生产计划需求量/(1 – 料品不良率)。如果是相关需求,那么毛需求 = 上层料品的下达量。其中独立需求是指某一存货项目的需求与其他项目需求没有关联,如生产的最终产品, 它是企业生产的可以销售的产品项目通常位于产品结
2009-01-25 16:47:00
4034
原创 Delphi MDI子窗口调用问题
DELPHI 编程中,关于调用MDI子窗口常出现内存错误的问题:1.MDI主窗口的调用代码是: uses unit1; begin if Form1 = NIL then Form1 := TForm1.Create(self); Form1.show; end;2.Form1的释放程序: onClose
2009-01-25 16:20:00
2155
转载 Delphi程序员如何找到高薪的工作?
本文翻译自《美国优秀经理观念大全修订本》我想现在没有什么比做一个软件工程师更能赚钱的了,当然了,明星除外。在美国,一个优秀的软件工程师,就算在一个平凡的岗位上,也能得到年薪50万(美元)以上的待遇。这绝对不是开玩笑,在北美曾有统计表明,一年内发放给软件工程师的工资以及各种福利,占去了全美净收入的2.4%,这是一个很大的数字。我是一个Java软件工程师,但是在这里我不想说Java,
2009-01-25 16:18:00
1048
转载 delphi 过程、函数型变量分析
Procedure型变量: 在DELPHI中,函数、过程的地址可以赋给一个特殊类型的变量,变量可用如下方式声明: var p : procedure(num:integer); //过程 或: var f : function(num:integer):integer; //函数 也可定义一个过程(或函数)类型,再定义该类型的变量,如: type TMyProc = Procedure
2009-01-25 16:14:00
1242
1
原创 获取变量数据类型的程序
Delphi syntax: function VarType(const V: Variant): TVarType; VarType Contents of variant varEmpty The variant is Unassigned.varNull
2009-01-25 16:12:00
1158
原创 MRP SQL
SET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS OFF GO /*****************************************************************
2006-03-22 18:10:00
2392
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人