castalia翻译是 神泉 ,是delphi的一个优秀第三方工具。其重构功能尤为突出。代码实时编译提示也很棒。

自卑delphi开发工具没有eclipse那么强大的提示?有castalia为你提升信心。

重构例子如下:

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type Ta = class
  private
    function foo():integer;
end;

{ Ta }

function Ta.foo: integer;
var a,b,c:integer;
begin
  a := 0;
  b := 0;
  c := a + b;
end;

begin

end.

选中 c := a + b; 这行后,选择菜单 extract method ,神奇出现了,代码变成:

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type Ta = class
  private
    procedure foo_Extracted(a: integer; b: integer);
    function foo():integer;
end;

{ Ta }

procedure Ta.foo_Extracted(a: integer; b: integer);
var
  c: integer;
begin
  c := a + b;
end;

function Ta.foo: integer;
var
  a, b: integer;
begin
  a := 0;
  b := 0;
  foo_Extracted(a, b);
end;

begin

end.

自动将局部变量,移动,产生出新的方法;但我们前面由于c没有被重构方法后面
的代码使用,所以被重构成一个过程了。

如果我们后面加上使用代码。再抽取方法,会自动抽取成函数,效果如下:

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type Ta = class
  private
    function foo_Extracted(a: integer; b: integer): integer;
    function foo():integer;
end;

{ Ta }

function Ta.foo_Extracted(a: integer; b: integer): integer;
begin
  Result := a + b;
end;

function Ta.foo: integer;
var
  a, b, c: integer;
begin
  a := 0;
  b := 0;
  c := foo_Extracted(a, b);

writeln(c);
end;

begin

end.

然后我们只需要给方法改个名字就ok了。

其功能还有许多。比如过程出口提示,括号配对,begin end 配对 ,错误实时编译提示。。。。

该工具能够大大提升工作效率,其他工具都可以卸载了。

同时用此工具就一个感觉 --- 享受编码的乐趣!

delphi新手到高手的工具--castalia的更多相关文章

  1. Delphi 完整的Bug决议工具EurekaLog的使用

     http://blog.csdn.net/akof1314/article/details/6968587 Delphi 完整的Bug决议工具EurekaLog的使用 标签: delphi工具ftp ...

  2. 从新手到高手c++全方位学习 pdf + 视频教程 共18章

    淘宝已经和谐了这个网站,原网址:https://item.taobao.com/item.htm?spm=a1z09.8149145.0.0.mb00D0&id=17350311256& ...

  3. 新手福音︱正则表达式小工具RegExr

    由于之前在做NLP的内容,势必会接触正则表达式,但是呢,又觉得这个学不明白- 于是,这个工具还是蛮不错的,相当于在线正则速查+验证小工具,对于我这样的新手值得去玩玩. github:https://g ...

  4. Delphi新手跟我学写CALL,附完整原程序

    在开始进入正题前先罗嗦几句: 1.本人也刚学Delphi不久,也刚通过<诛仙>游戏的绝大部分CALL不久.所以在以下所说所列举的例子并不算是名门正中的写法,如有不当,请各位原谅. 2.本人 ...

  5. DELPHI 数据库操作类(工具类)

    DELPHI 数据库连接类 做的时候目地是可以通过类的创建和释放进行数据库的短连接,在做服务端的时候每一个请求都通过类生成一个数据连接 unit UnDm; interface uses SysUti ...

  6. Python美女[从新手到高手]--阅读&quot;见个面问题 HashMap 储存方法&quot;联想

    今伯乐在线 上看到一篇文章.一道面试题看 HashMap 的存储方式.也就是问: 在 HashMap 中存放的一系列键值对,当中键为某个我们自己定义的类型.放入 HashMap 后,我们在外部把某一个 ...

  7. Unity3D插件-自制小插件、简化代码便于使用(新手至高手进阶必经之路)

    Unity3D插件-简化代码.封装功能 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 FindT() ...

  8. Delphi名站以及高手Blog

    以前知道的: http://cnblogs.com/del (万一兄的,这个不用解释了) http://www.cnblogs.com/del/archive/2010/04/25/1720750.h ...

  9. Delphi 开发手机 App 与其他工具之间的比较分析

    写在前头 关于各种手机App开发的工具,从2010年前后到现在已经在很多不同的场合介绍过,在元智大学.中台科技大学.德霖科技大学等不同学校的讲座.课程当中,都有类似的主题,所以对我来说,这个主题属于驾 ...

随机推荐

  1. php数组按值的大小排序

    array_multisort(array_column($nima,'zongfen'),SORT_DESC,$nima);

  2. json数组转java对象

    <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>ison-lib</art ...

  3. Mysql 5.7 忘记root密码或重置密码的详细方法

    在Centos中安装完MySQL数据库以后,不知道密码,这可怎么办,下面给大家说一下怎么重置密码 在Centos中安装完MySQL数据库以后,不知道密码,这可怎么办,下面给大家说一下怎么重置密码 1. ...

  4. Avalon Framework

    Apache Avalon has closed. Apache Avalon began in 1999 as the Java Apache Server Framework and in lat ...

  5. zabbix主动监测客户端设置

    主动/被动模式 主动模式和被动模式的区别一开始我也非常模糊,其实这是zabbix的两种工作方式,是相对于zabbix的agent端来说的,定义为: 主动模式:zabbix的agent端,也就是客户端, ...

  6. 4. Median of Two Sorted Arrays (二分法;递归的结束条件)

    There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...

  7. 【模型】Toon Dragon

    下载地址:点击下载

  8. Angular之模版引用变量

    A template reference variable is often a reference to a DOM element within a template. It can also b ...

  9. C++ map中使用erase应该注意到的问题

    注意:此程序在win环境下会出现上述描述的问题:在mac环境下第一种方式是正常运行的.Map.erase有3个重载函数: void erase(iterator position); size_typ ...

  10. Laravel常用命令行中文版

    1.生成控制器 php artisan make:controller ArticleController 对应的会在app/http/controllers下面生成ArticleController ...