Delphi 设计模式:《HeadFirst设计模式》Delphi代码
一、一个叫声接口和几只鸭子
1、从一个叫声接口开始
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 一个叫声接口 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uQuackable;
interface
type
IQuackable = interface(IInterface)
procedure Quack;
end;
implementation
end.
2、几只鸭子实现了该叫声接口。
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 几只鸭子实现了声接口 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uDuck;
interface
uses
uQuackable;
type
TMallardDuck = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
TRedHeadDuck = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
TDuckCall = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
TRubberDuck = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
implementation
{ TMallardDuck }
procedure TMallardDuck.Quack;
begin
Writeln('Quack');
end;
{ TRedHeadDuck }
procedure TRedHeadDuck.Quack;
begin
Writeln('Quack');
end;
{ TDuckCall }
procedure TDuckCall.Quack;
begin
Writeln('Kwak');
end;
{ TRubberDuck }
procedure TRubberDuck.Quack;
begin
Writeln('Squeak');
end;
end.
3、叫声接口为鸭鸣器提供服务。叫声接口与鸭鸣器的关系比与它的实现类更密切。
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 鸭鸣模拟器 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uDuckSimulator;
interface
uses
uQuackable, uDuck;
type
TDuckSimulator = class(TObject)
private
procedure Simulate(aDuck: IQuackable); overload;
public
procedure Simulate; overload;
end;
implementation
{ TDuck
相关文档:
文章来自:http://www.cnblogs.com/del/archive/2009/05/15/archive/2008/11/08/1329543.html
GetMem
AllocMem
ReallocMem
FreeMem
GetMemory
ReallocMemory
FreeMemory
New
Dispose
NewStr
DisposeStr
StrNew
StrAlloc
StrDispose
GlobalAllocPtr
GlobalFreePtr
WideStrAlloc
AnsiStrAlloc
StrDispos ......
经过多方查找,总算基本找齐战哥的处女作《悟透delphi》的手稿。
不敢独占,于是拿出来于大家共享。
第一章 DELPHI的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章& ......
第一章 DELPHI的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章 多层体系结构
第十章 操作界面与操作逻辑
第十一章 面向对象数据库基础
第三章&n ......
设置图像关键颜色,使图像的某种或某个范围的颜色成为透明色,是图片合成、动画显示中经常用的图像处理手段。下面是实现代码:
过程定义:
// 设置色键(透明范围)。colorLow 低色键值; colorHigh 高色键值
// 当像素A、R、G、B值同时大于等于colorLow和小于等于colorHigh时为透明色
procedu ......
Delphi2010集成了fastMM,这回大家调试程序是的时候可以方便地检查内存泄露了。
使用方法如下:
在project中,添加一行 ReportMemoryLeaksOnShutdown := DebugHook<>0;
DebugHook<>0 目的是保证单独运行exe文件不会弹出内存泄露框,源码可以不用注释掉此行
program Project1;
uses
Forms,
......