摘要: 技术交流,DH讲解. 最近和肥鸟交流了下关于字符串方面的知识,而这篇文章是很久以前写的,现在发出来吧. 我们写两段代码来对比下:第一个用Copy函数:procedure TForm1.Button1Click(Sender: TObject); var a,c:Cardinal; n:Integer; D:Double; i:Integer; b:string; begin c:=0; for n... 阅读全文
posted @ 2009-12-15 21:34 HuangJacky 阅读(3294) 评论(1) 推荐(0) 编辑
摘要: 技术交流,DH讲解. 问题如下: TBase = class end; TChild = class(TBase) public F1:Integer; procedure Say; end;implementation{$R *.dfm}procedure TForm3.FormCreate(Sender: TObject);var A:TBase; B:TChild;begin ... 阅读全文
posted @ 2009-12-15 13:25 HuangJacky 阅读(1393) 评论(1) 推荐(0) 编辑
摘要: 前言 这书是由Marco Cantu 老爷子N久前写的.网上只看见英文版,所以这里想翻译下,虽然本人CET4只有426,但是工作了一年了,MSDN经常翻,手上也有Windows核心编程第五版(英文版,买错了...),所以简单翻译还是会的,不过可能有些言不及义,希望大家指出.谢谢. 第一章 Pascal的历史我们在Delphi中所用的Object Pascal语言并不是在1955年Borland可视... 阅读全文
posted @ 2009-12-14 13:22 HuangJacky 阅读(1214) 评论(2) 推荐(0) 编辑
摘要: 技术交流,DH讲解. 今天就把Delphi新语法中与类相关都讲了. 1 静态系列.静态成员变量,静态方法,静态属性.静态方法只能使用静态成员变量或者其他常量.一个例子:type TMyClass = class strict private class var FX: Integer; strict protected class function GetX: Integer; static;... 阅读全文
posted @ 2009-12-11 20:24 HuangJacky 阅读(2443) 评论(4) 推荐(0) 编辑
摘要: 技术交流,DH讲解. 一句话,结构体里面,避免使用String,要使用Array[N..M] of char,或者String[N].肯定有兄弟要问,为什么,其实最先我也不知道,因为我觉得用string也没有错的.看例子: THuangJacky = record Age:Integer; FName:string; end;procedure TForm3.btn1Click(Sender:... 阅读全文
posted @ 2009-12-11 09:16 HuangJacky 阅读(1193) 评论(8) 推荐(0) 编辑
摘要: 技术交流,DH讲解. 这个错误主要出现在结构体的变体部分.当结构体变体部分里面包含一个不定长的数据时,编译器就会报出错误来.我们来看下: type Data = record case kind:Char of 'A': (str : String); end;我们知道变体结构体会在编译的时候确定这个结构体的大小.但是这样它就确定不了了.那么要怎么修改呢?1 要么有不定长数据的时候不要放在变体部... 阅读全文
posted @ 2009-12-11 09:01 HuangJacky 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 技术交流,DH解说. 以前写过一次,现在全部重写吧.比较基础了,高手莫笑. 记得有次在盒子上面看到有个人出的面试题,第一题就是:AnsiString 和 WideString的区别.好这里先留给大家想想,我讲完了,大家就应该知道了.嘿嘿. 首先分类:1 ShortString,可以容纳255个字符,主要为了老版本兼容2 AnsiString,可以容纳2的31次方个字符,D2009前默认的Strin... 阅读全文
posted @ 2009-12-10 11:34 HuangJacky 阅读(4872) 评论(7) 推荐(0) 编辑
摘要: 技术交流,DH讲解. 前几天一个朋友在弄游戏外挂想带NP调试,就像自己来捕获游戏的异常.好像就要用到SEH这方面的知识.一起研究了一下,这里看下研究 和 在网上找的资料吧.SEH就是Structure Exception Handling.结构化异常处理,具体可以看下MSDN.MSDN在手,走遍天下无敌手.哈哈.当时先自己看下Delphi 怎么实现try..except..end的吧.我们写段程序... 阅读全文
posted @ 2009-12-09 22:05 HuangJacky 阅读(1872) 评论(2) 推荐(1) 编辑
摘要: 技术交流,DH讲解. 哈哈,Java和C#里面的For In用起来真爽,我们Delphin也不用眼红了,从D2005起,Delphi里面也有这个功能了. 首先我们要知道哪些类型可以用For In吧,下面就是: for Element in ArrayExpr do Stmt; 数组 for Element in StringExpr do Stmt; 字符串 for Element in Se... 阅读全文
posted @ 2009-12-09 21:25 HuangJacky 阅读(4549) 评论(0) 推荐(1) 编辑
摘要: 技术交流,DH讲解. 最近写的程序里面想加入一个Log的功能,为了方便以后使用,所以就打算写一个控件.结果遇到了一个问题,这里和大家分享. Procedure DoSetFile(ATxt: TextFile; Const Filename: String);BeginAssignFile(ATxt, Filename);If FileExists(Filename) ThenAppend(ATx... 阅读全文
posted @ 2009-12-09 20:59 HuangJacky 阅读(1456) 评论(0) 推荐(0) 编辑
摘要: 技术交流,DH讲解 这个错误其实很低级的,不过很容易犯,尤其是我们在Copy别人代码的时候.这个错误是因为单元的第一句话 Unit XXXX 和你保存的文件名 XXXX.pas 不一致,这里大小写都必须一样. 是的,就这样简单! 阅读全文
posted @ 2009-12-09 20:56 HuangJacky 阅读(1413) 评论(0) 推荐(0) 编辑
摘要: 技术交流,DH讲解 运算符重载一直是个争议的话题,.其实运算符重载就是方便我们而已,不用不会死人,用了方便点儿而已.D7之后的版本也支持运算符重载.我们来看个例子:如果我们想2个结构体可以相加,比如说 a,b:TPoint;C:=a+b;是吧,多美好的事情呀. THuangJacky = record A,B,C:Integer; //+ class operator Add(a, b: THu... 阅读全文
posted @ 2009-12-09 20:40 HuangJacky 阅读(1821) 评论(5) 推荐(1) 编辑
摘要: 技术交流,DH讲解 有个朋友发短信来求助,我想他是在笔试.哈哈.C++的,但是我们知道原理后,什么都是一样的. 一个数的二进制形式是这样的.10011001 那么要判断有多少个1的话,我们只要与00000001与,然后循环右移与就可以了.比如第一次:10011001 and 00000001 =1 说明这一位是101001100 and 00000001 =0 说明这一位不是1再右移0010011... 阅读全文
posted @ 2009-12-08 22:50 HuangJacky 阅读(1588) 评论(2) 推荐(0) 编辑
摘要: 技术交流,DH讲解 如果我们想在不改变已有类的情况下,然后加上新的功能.这个时候我们就可以使用装饰模式了.惯例先看下这个设计模式的UML图. 装饰模式关键是方法重载.override.说了这么多我们来用代码来说话. 老规矩,第一个是PHP了.class Person{ var $name=''; function __construct($a){ $this->name=$a; } pub... 阅读全文
posted @ 2009-12-08 22:22 HuangJacky 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 看CxGrid资料的时候,看见了一个为兄弟的文章,我就转一下了. //需要Use CommCtrlFunction GetSubItemRect( handle, ItemsIndex, SubIndex: Integer ): TRect ;BeginListView_GetSubItemRect( Handle, ItemsIndex, SubIndex, 0, @Result ) ;End ... 阅读全文
posted @ 2009-12-08 22:17 HuangJacky 阅读(3299) 评论(2) 推荐(0) 编辑
摘要: 技术交流,DH讲解.哈哈,好久没有写这个系列了.今天在看VCL源代码的时候,看见了这个.还是声明一下这个是在D7以后的版本才有的.谢谢,不要喷我! 当我们想给一个类增加一个方法或者成员变量,但是这个类又被很多单元引用了,我们直接去该这个类,肯定是很不明智的,怎么办?对了,面向对象的话,我们可以继承一下不就OK了,的确可以.但是如果结构体呢?其实这个关键更像是为结构体准备的不过我这里想说一个help... 阅读全文
posted @ 2009-12-08 22:15 HuangJacky 阅读(5626) 评论(8) 推荐(0) 编辑
摘要: 技术交流,DH讲解. 单例模式一般都是在全局变量区存放一个变量,然后在创建的时候先看这个全局变量是否被赋值了,如果没有就创建如果有就直接返回这个全局变量.UML图: 要是不想被人创建对象的实例,那么一般的办法就是把构造方法设置成私有域.好了,原理说了,我们就来看看代码怎么实现吧. [代码]这个是PHP的单例模式的代码. 我们用一个静态变量来充当了全局变量. 接下来是C#的例子: [代码]现在PHP... 阅读全文
posted @ 2009-12-08 22:07 HuangJacky 阅读(902) 评论(4) 推荐(0) 编辑
摘要: 技术交流,DH讲解.之前一篇文章已经讲过对象构造的过程,但是我们那个对象无任何东西,这里我们在已有的基础上面加点儿东西再来看看.代码改成: THuangJacky = class private FName:string; public procedure SayMyName(); constructor Create(); end;var Form3: TForm3;implement... 阅读全文
posted @ 2009-12-08 15:13 HuangJacky 阅读(1895) 评论(4) 推荐(2) 编辑
摘要: 技术交流,DH解说.哈哈,学一下xiaoy.今天这里我想说一下,Delphi里面的数据,当然不是数据类型,如果有朋友想看数据类型的直接打开Delphi的帮助就可以了.我们主要来看下数据在内存中的分布,以及我们怎么使用,其实这就不局限于Delphi了. 任何数据在内存中都是一堆二进制,各种数据结构都是对这些二进制进行堆积木而已.比如说Byte,Char,Boolean只是使用一个字节的数据,而Wor... 阅读全文
posted @ 2009-12-08 12:45 HuangJacky 阅读(1160) 评论(9) 推荐(2) 编辑
摘要: 今天说一下代理模式.从名字看大家都知道了代理模式,就是一个让一个类来帮你干某些事.是吧?嘿嘿.当然开始之前我们还是惯例来看看这个设计模式的UML:我看到了代理类请求其实调用的还是RealRequest类的请求,只是Proxy去调用 --------------------------------------------------------------------------------我们现在... 阅读全文
posted @ 2009-12-07 21:10 HuangJacky 阅读(675) 评论(3) 推荐(0) 编辑
AdminLogin