《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:绘图
来源:互联网 发布:c4d软件中文版设置 编辑:程序博客网 时间:2024/06/03 02:43
示例:绘图
说明:
考虑一个支持在屏幕上绘图的类View。一个视图在进入"焦点"(focus)状态时才可设定合适的特定绘图状态(如颜色和字体),因而只有成为"焦点"之后才能进行绘图。View类强制其子类遵循这个规则。
代码:
unit uView;
interface
uses
Graphics;
type
TView = class
private
FCanvas: TCanvas;
FFocus: Boolean;
procedure SetFocus();
procedure ResetFocus();
protected
procedure DoDisplay(); virtual;
public
constructor Create(ACanvas: TCanvas);
//---
procedure Display();
end;
TMyView = class(TView)
protected
procedure DoDisplay(); override;
end;
procedure Test(ACanvas: TCanvas);
implementation
procedure Test(ACanvas: TCanvas);
var
AView: TView;
begin
AView := TMyView.Create(ACanvas);
AView.Display;
AView.Free;
end;
procedure TView.Display();
begin
SetFocus();
DoDisplay();
ResetFocus();
end;
procedure TView.DoDisplay();
begin
end;
procedure TView.SetFocus();
begin
FFocus := True;
end;
procedure TView.ResetFocus();
begin
FFocus := false;
end;
procedure TMyView.DoDisplay();
begin
with FCanvas do
begin
Font.Color := clRed;
TextOut(10, 10, '123');
end;
end;
constructor TView.Create(ACanvas: TCanvas);
begin
FCanvas := ACanvas;
end;
end.
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:绘图
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:模板方法接口
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:文档
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:工厂方法接口
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:参数化工厂方法
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:延迟初始化对象
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:为子类提供挂钩(hook)
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:平行的类层级架构
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:绘图编辑器
- 《GOF设计模式》—组合(COMPOSITE)—Delphi源码示例:绘图编辑器
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:绘图编辑器
- 《GOF设计模式》—组合(COMPOSITE)—Delphi源码示例:绘图编辑器
- GOF设计模式之TEMPLATE METHOD(模板方法)
- 《GOF设计模式》—原型(Prototype)—Delphi源码示例:基于Assign方法的拷贝
- 设计模式——模板方法模式【Template Method Pattern】
- 乱写一篇
- 优先级,结合性,序列点, 你理解清楚了么?
- system会挂起父进程
- 关于NEON的一些总结
- 数据类型转换
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:绘图
- mapreduce eclipse plugin使用
- Android 的一些实用的函数
- flex 缩略图处理方式
- ARM汇编伪指令介绍
- SEO工作执行步骤
- 大话数据库编程规范
- py两序列和差最小
- 上传文件名乱码的解决