转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
CodeColor相关(二) 基类TCodeColor         ★★★★

CodeColor相关(二) 基类TCodeColor

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1846 更新时间:2009/4/23 18:27:10

        第二部分:基类 TCodeColor

        一、本章说明
        暂时先公开基类代码,和子类的部分代码,子类中字符分析函数 Analyzer 的实现暂时不公开,主要出于这样的考虑:
        1、基类已实现大部分共用功能,但是还不完善,代码也不规范。特别是各个版本的 Analyzer 中都会用到这些功能,所以待听取路高手的意见,将基类改进完善后,将重写 Analyzer 并在第三部分中公开;
        2、如果您急于使用本程序,有两种方法:一是您可以留下邮箱地址,我会寄给您一份程序;二是利用并不完善基类 TCodeColor 继承出一个子类,自己实现 Analyzer ,字符分析的方法可以参考 李马  的 行云流水网站  提供的 C 语言版 《Pascal 词法分析器》源代码;
        3、欢迎大家提出宝贵意见、想法,同时尽可能的留下相应的解决方案。

        二、用户端
        很简单,不做过多说明:

//┏━━━━━━━━━━━━━━┓
//┃代码着色:CodeColor v1.0  
//┃来自:悄然无声的 Blog     ┃      
//┗━━━━━━━━━━━━━━┛


procedure TfrmMain.Button1Click(Sender: TObject);
var
  cc:TCodeColor;
begin
  cc:=TCC_Delphi.Create(''''gainsboro'''',720); 
  cc.Source:=Memo1.Text;
  cc.Processor;
  Memo1.Text:=cc.OutPut;
  Memo1.Lines.SaveToFile(''''result.htm'''');
end;


        二、基类 TCodeColor
        也很简单,在注释中已有详细说明。IsAlphaIsNumberic 都用的土方法,或许还有更好的实现方法。IsMBCSChar 是经过滚龙的三次指点才变成现在这个样子的,原先叫 IsHZ ,所以欢迎大家指点一二。 

//┏━━━━━━━━━━━━━━┓
//┃代码着色:CodeColor v1.0  
//┃来自:悄然无声的 Blog     ┃      
//┗━━━━━━━━━━━━━━┛


unit CodeColor;

interface

uses
  Classes,SysUtils;

type
  TCodeColor = class(TObject)
  protected
    FOutPut: string; //处理后的 Html 文本
    FSource: string; //处理前的源文本
    FPosition: Integer; //当前被处理字符的位置
    FBGColor:string; //Html 中表格的背景颜色
    FWidth:string;//Html 中表格的宽度
    ReserveWords: TStrings;//关键字
    
    //抽象的字符分析函数,便于在子类中有不同的实现
    procedure Analyzer; virtual; abstract;

    //下面四个函数在子类中的 Analyzer 中使用
    function GetNextChar: Char;//返回下一个字符
    function IsAlpha(const ch: Char): Boolean; //判断是否是字母
    function IsMBCSChar(const ch: Char): Boolean;//判断字符是否为多字节字符
    function IsNumberic(const ch: Char): Boolean; //判断是否是数字
  public
    constructor Create(const bgColor:string;width:Integer);
    property Source: string write FSource;//属性:设置源文本
    procedure Processor;//处理机
    property OutPut: string read FOutPut; //属性:返回处理后的 Html 文本
  end;
  
implementation

{
********************************** TCodeColor **********************************
}


constructor TCodeColor.Create(const bgColor: string; width: Integer);
begin
   FBGColor:=BGColor;
   FWidth:=InttoStr(width);
end;

//处理机
procedure TCodeColor.Processor;
begin
  FPosition:=0;
  FOutput:='''''''';

  while(FPosition<Length(FSource)) do
  begin
    Analyzer;
  end;

  FOutput:=''''<TABLE BGCOLOR="'''' + FBGColor + ''''" ''''
              + ''''B

[1] [2] [3]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台