当前位置:首页 > 代码 > 正文

delphi代码阅读工具(delphi用什么开发工具)

admin 发布:2022-12-19 08:54 121


今天给各位分享delphi代码阅读工具的知识,其中也会对delphi用什么开发工具进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

delphi7 castalia 怎么卸载

我的Delphi开发经验谈

--------

开发环境

--------

Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件。安装好Delphi 7后,应立即安装Delphi 7 Update Pack 1,Delphi 2007则建议尽量安装最新的版本。工欲善其事,必先利其器,为了提升开发效率,为了能更加得心应手的处理接下来的开发工作,我们有必要安装一些有用的开发辅助工具(Delphi将此类插件以Expert命名)。首先推荐的是DelForExp这个源代码格式化工具,集成在IDE里,使用相当方便。即使我所写代码的风格非常好,但是还是免不了阅读某些人写的乱七八糟的代码,这时DelForExp就能派上用场了,1秒钟就能让代码能看上去顺眼多了。GExperts曾经是一个非常出名的工具,可现在都不怎么更新了,里面有几个功能还是值得一用,比如Grep Search, Replace Components, Code Proofreader等。强烈推荐安装CnPack IDE 专家包,相信我,它会让你的Delphi更好用。Delphi 7是不支持重构的,因此我还建议安装Castalia,这个工具中某些功能还是很不错的。CodeRush一直都是Delphi下最强大的工具,可是由于安装后比较容易与其他工具冲突,让人不得不忍痛割爱。Delphi 7下建议安装Delphi SpeedUp这个IDE加速工具,其原理是在Delphi启动前,替换RTL的函数为来自FastCode工程的执行效率更高的函数。ModelMaker Code Explorer为Delphi增加了一些方便重构代码的功能,值得安装使用。

第一次启动Delphi 7,关闭设置中的Delphi Direct以禁止Delphi访问Borland服务器,勾选Show Compiler Progress选项以便编译程序时可以看见编译进度,然后分别设置所安装的专家的选项,再对Delphi的窗体布局按自己的喜好调整,调整好了然后将其保存为默认布局。关闭工程,设置好默认的工程选项。接下来就可以安装控件包了。如果是在项目小组中配置开发环境,因为可能所需的控件比较多,安装比较麻烦,建议由一个有经验的开发人员将那些散装控件预编译后做成安装程序供小组其他成员安装。

--------

软件设计

--------

在整理自己的思路的时候可以采用PersonalBrain来画思维导图,这是一个拓展脑力,激发思维的一个活动,并且将自己的想法全部记录下来,并在整理的过程当中可以发现内在联系与更多的问题,在接下来的设计中加以考虑。做设计需要画图,除了Visio外,我推荐EDraw Soft Diagrammer。Enterprise Architect用来做UML设计是很好的选择。ModelMaker为Delphi增加UML支持,可以保持设计与代码双向同步,非常不错的工具。

作为一个Delphi产品的设计人员,应该具有广阔的视野,熟悉.NET、Java下优秀的框架设计,熟悉Delphi类库的源代码,其中总有我们可以借鉴与学习的地方,根据公司的实际情况以及具体需求有选择的在产品开发中进行实践,这样才能做出高质量的产品。

--------

软件开发

--------

数据结构是软件开发中的基础,在开发项目前,你一定应该准备好如TStack, THashtable, TQueue, TCollection, TMap, TBag, TSet, TAssociation之类的容器类,然后在以后的开发中根据需要选用合适的数据结构,避免不要直接使用指针与TList。如有需要,可以先将TStream,TRegistry等常用类继承实现,也就是做一个包装,这样就为以后的开发中就留下了一个可以随时加入扩展的接口。

网上也能找到DGL(The Delphi Generic Library)来为Delphi增加泛型支持,实际上也可以称之为一个模板库,但是这个库我也只使用过一次,网上也未见其他人使用,因此到底是否可靠还有待于实践验证。说到模板库,我还想起一个DEEX,这是一个预处理器,可以让你使用类似STL相似的语法,其中也内置了DTL(Delphi Template Library)库。

关于AOP,Delphi这方面完全不能与Java或.NET相比,所能用的技术也就只能是动态代理或Hook来实现,虽然也出现了MeAOP之类的框架,我还是建议从设计上去解决这类AOP的需求,或者也可以考虑采用在DailyBuild的时候做编译前预处理(比如设计成{LogAction}类似于.NET的属性特性来修饰特定的方法,当然预处理器必须自己开发)。

与开发有关的文件都应该被管理起来,而不仅仅是只管理代码,一开始就要做好目录规划,特别要注意将代码与运行时所需的资源分隔开,一般来说,可以分为Doc,Src,Res,Misc四大类,Doc存放全部相关的文档,里面建立具体的分类目录;Src存放编译所需的文件,比如源代码和帮助的源文件;Res存放制作安装包与发布软件所需的各种资源文件,比如图片、网页等。这样做将为接下来的DailyBuild做好准备。

Delphi没有Package与Namespace的概念,因此只能利用目录上的物理划分代替逻辑划分,将同一性质的单元放置到同一目录,根据需要再划分更多子目录来存放单元。

程序的界面上的控件最好都重新规范命名,切忌在代码中出现类似Label1.txt := 'abc';之类的代码。开发者应该熟悉Delphi所提供的系统函数,切忌自己去实现Delphi已经提供了的函数,一则这样做的效率不高,二则你自己所写的代码没有经过完全的测试,很有可能存在未妥善处理的情况。我们不提倡重复发明轮子,特别是在正式的开发中这样做。开发中把握面向对象设计的原则:单一职责、开放封闭、里氏替换、依赖倒置、接口隔离、高内聚低耦合。代码就是最好的注释,变量命名尽可能的表达其本身的意义,最好的注释就是不需要注释也能很容易的看懂代码,只在需要的地方加上注释。开发人员应该将自己所写的代码视之为供别人使用的产品,不要随意的将方法声明为公开方法,只提供给别人需要的方法,每个公用方法上都应该用注释标明其功能。程序编译过程中出现的任何警告或提示都应该认真对待,争取消除每一个警告或提示,这样做是避免一些代码中可能存在的隐患。

有经验的程序员完成特定的功能会充分考虑可变的情况,将这些地方提取出来,定义为方法参数或者从配置文件中读取,这样即使需求发生变化,也能轻松应对。要写出易维护的程序应该在软件配置化和程序动态化上下功夫。特别提一提程序动态化,现在开发网络游戏的很多,而且一般都会用到脚本引擎Lua来实现部分逻辑,这样在开发后期的调整相对变得轻松一点,以后在服务器上做修改也不会要求重新启动程序。当然在一般的项目或产品中一样可以考虑使用脚本引擎,当然不一定要用Lua,还可以有很多别的选择。比如:DelphiWebScript,RemObjects Pascal Script,AUTOMA atPASCAL SCRIPTER,FastScript,Innerfuse Pascal Script。如果还有更高的要求,还可以考虑利用COCO/R (ParserBuilder)来实现自己的语法解析器。

开发中通常会遇到自己不能解决的问题,要知道你遇到的问题别人可能早就遇到过并解决,因此请教他人或者请教Google通常是最好的选择。上论坛提问是没有效率的方法。本地的知识库也能派上用场,比如的离线库CodeFinder,大富翁离线资料库,

--------

控件开发

--------

控件分为不可视控件与可视控件,不可视控件其实与一般的类没什么太大的区别,只需要公布需要公布的属性为Published,如有需要也可以设计并注册自己的属性编辑器。

开发控件也有专业的开发工具Eagle CDK和Eagle reAct,您不仅可以很方便的创建类,还可以在运行期测试控件,可以很方便的修改属性,即时看到效果,大大提高了开发效率。

--------

软件破解

--------

愈来愈多的开发者开始采用RSA来作为注册的加密算法,效果还算不错,虽然仍不能防止被爆破,但是至少不会出现(内存)注册机。对软件加壳也不是什么防弹衣,对于有经验的破解者几分钟就可以用OllyDbg从内存Dump(先用Process Explorer杀掉屏蔽调试工具的线程),接着就是用Import REConstructor修复IAT,再用Lord PE对EXE进行优化。

DeDe可以让破解者看到程序内的资源,事件,既可以静态分析,也可以在OllyDbg中对分析出的地址进行动态调试。

破解Delphi控件当然也可以用DeDe,但是我们有更好的选择,那就是DCUcu与Dcu2Pas,可以将Dcu直接反编译成汇编代码,通过静态分析其中的字符串以及调用的API,破解真的是很容易。

只有做到知己知彼,才能做到有的放矢,反破解就是做到以最小的保护代价来使得破解者付出极大的破解行动。

--------

delphi中如何自动排版?

一、什么是 CnWizards?

======================

CnWizards 是 CnPack 项目组的主力产品之一,中文全称是 CnPack IDE 专家包,

英文全称是 CnPack IDE Wizards,简称 CnWizards。CnWizards 是一组集成在

Delphi/C++Builder/BDS 的 IDE 中,用于增强 IDE 功能、提高 IDE 的可用性及

开发效率的免费、开放源码工具。

2010 年 9 月,CnWizards 已进入 Embarcadero Delphi XE Partner DVD。

==================================

二、CnWizards 主要面对哪类用户群?

==================================

CnWizards 产品主要面对使用 Delphi 5 6 7、C++Builder 5 6 与 BDS 2005

2006、RAD Studio 2007 2009 2010 XE XE2 的开发者。

CnWizards 目前的发布版本包括简体中文、繁体中文、英三种语言。

==============================

三、CnWizards 主要有哪些功能?

==============================

CnWizards 在 Delphi / C++Builder / BDS 的 IDE 中提供了十多个可独立设置的

子专家,数十种功能,主要包括:

* 代码输入助手

* 代码结构匹配高亮与画线

* 增强的单元窗体列表功能

* TabOrder 设置专家

* 窗体设计器的浮动工具栏

* MSDN 帮助集成功能

* 代码编辑器工具栏与功能扩展

* 工程相关的扩展功能

* 组件面板多行显示支持

* 窗体置顶与折叠功能

* 源代码统计功能

* 引用单元清理

* 其他大量增强与改进

关于界面截图可参考:

此外,CnWizards 还附带下列独立运行的小工具:

* CnWizards 设置导入导出工具

* DFM 窗体转换工具

* IDE 配置备份/恢复和清除打开文件历史工具

* 调试信息输出单元 CnDebug 与调试信息查看器 CnDebugViewer

* ASCII 字符表

* IDE 外部专家管理工具

* 源码模块关系分析工具

CnWizards 以与开源协议兼容的 CnPack 协议发布,因而是开源、免费的。

任何个人或商业团体可以免费使用 CnWizards,无需支付任何费用。

======================

四、关于 CnPack 开发组

======================

CnPack 是由互联网上一群中国程序员开发的开放源码的自由软件项目,当前主要

的工作成果包括 CnPack 组件包、CnWizards 专家包以及 CVSTracNT 错误跟踪系

统等。2009 年 CnPack 开发组成为了 Embarcadero 的技术合作伙伴。

CnPack 开发团队目前规模有 260 余人,并且还在不断发展壮大中。

CnPack 网站:

CnPack 论坛:

每日构建版:

管理员信箱: master@cnpack.org

======================

五、更新记录

======================

0.9.9 较 0.9.8 的更新

+ 增加对 RAD Studio XE 2 的支持。

+ 增加 ImageList 的组件编辑器,支持 Alpha 通道与在线搜索图标。

* 代码高亮修正 Delphi 2009 以及以上版本中 Tab 键导致错位的问题。

* 编辑器扩展加入行首尾按左右键折行的功能,默认禁用。

* Delphi 2009 以及以上版的脚本引擎更新至最新版本。

* 浮动属性工具栏允许字符串属性调用字符串属性编辑器。

* 其它的错误修正和改进。

相关下载:

CnWizards V0.9.9.621 安装程序 (已下载 48849 次)

CnWizards V0.9.9.621 源代码(包括 CnVcl 组件包内测版) (已下载 2385 次)

本文已阅读 16789 次

来自: CnPack 开源软件项目

Delphi 程序,怎样编辑RCDATA文件?

转自

[转]Delphi中资源文件的使用

分类: Web技术 2008-08-28 08:04 269人阅读 评论(0) 收藏 举报

在Delphi中,生成一个Appliction工程时,会默认生成一个与工程同名的资源文件,即使删除也会再度创建,但是这个资源文件中只有一个图标和一个版本信息。

通常情况下,我们还需要更多的多种多样的资源,虽然可以在IDE中载入并编译到EXE文件中去,但是有时我们需要将资源与EXE分开,以便生成多语言程序或将程序改为其它语言(如汉化)。

Delphi附带的ImageEdit可以编辑资源文件,但只能编辑位图、图标和光标,无法加入字符串资源,而且只持256色的图像。为了将更多种类的资源,只有编写资源脚本或者使用其它资源编辑器,如Visual Stadio 6。不过,Visual Stadio 6编辑的资源文件中包含了C++头文件定义,并且支持的具体资源类型较多,在Delphi中是无法识别的。

只好选择编写资源脚本了,资源脚本文件扩展名为.RC,可以用纯文本编辑器编写。如下面是两个图标与两个字符串的脚本:

COMPUTER RCDATA "computer.ico" /* Delphi中只支持RCDATA类型 */

WINDOWSXP RCDATA "XP.ico"

STRINGTABLE

BEGIN

1 "computer(电脑)"

2 "Windows XP"

END

将其保存为MyRes.rc,需要注意的是,这里包含了两个图标,注意文件名及路径(这里是与文件同一目录)。在命令提示符窗口中将目录切换到MyRes.rc所在的路径,运行brcc32 MyRes.rc,其中brcc32.exe是Delphi附带的资源编译工具。如果想将资源文件生成其中扩展名的文件(如.DLL),可以增加-fo参数,如:brcc32 MyRes.rc –of MyRes.dll。

接下来是对资源的引用,引用方法有静态与动态两种,静态引用就是将资源文件包含到源码中编译到EXE中去;动态引用则是把资源文件当成DLL动态装载。

静态引用资源文件在Delphi中是最简单不过了,只要在工程文件中加入一个编译指令即可,如:

program Multi_Lang;

uses

Forms,

TestFormUnit in 'TestFormUnit.pas' {TestForm};

{$R MyRes.dll} // 包含自定义的资源文件

{$R *.res} // 包含默认的资源文件

begin

Application.Initialize;

Application.CreateForm(TTestForm, TestForm);

Application.Run;

end.

引用时,字符串只要LoadStr(Index)即可,而其它资源用TResourceStream读取,只不过资源句柄就是程序本身,直接用hInstance就可以了。如:

procedure TTestForm.ReadDirect(Index: Integer);

var

Stream: TResourceStream;

Icon: TIcon;

S: String;

begin

Edit1.Text:= LoadStr(Index); // 在TEdit控件中显示所获取的字符串

if Index = 1 then

S:= 'COMPUTER'

else

S:= 'WINDOWSXP';

// Delphi中只支持RT_RCDATA类型读取

Stream:= TResourceStream.Create(hInstance, S, RT_RCDATA); // 使用hInstance句柄

try

Icon:= TIcon.Create;

try

Icon.LoadFromStream(Stream);

Image1.Picture.Icon.Assign(Icon); // 是TImage控件中显示所获取的图标

finally

Icon.Free;

end;

finally

Stream.Free;

end;

end;

这种引用方式在编译就将资源与EXE文件链接在一起,而编译之后就不再需要资源文件了。

动态引用方式相对更多加灵活,编译时不需要资源文件,而是在运行时动态地入,这样便可以控件载入不同的资源文件,这也是实现多语言程序的一种方法。

动态引用实际上只是将资源文件静态包含到另一个工程(一般为DLL程序)中,如:

library MyResDll;

uses

SysUtils,

Classes;

{$R MyRes.dll} // 将资源文件包含到DLL工程中

ResourceString

S1 = '电脑';

S2 = '视窗';

Begin

End.

引用时像普通的DLL引用一样,将其装载后得到一个句柄,再用静态引用的方法,使用TResourceStream来读取。如:

procedure TTestForm.ReadDynamic(Index: Integer);

var

Hnd: THandle;

Stream: TResourceStream;

Icon: TIcon;

S: String;

Buf: PChar;

begin

Hnd:= LoadLibrary('MyResDll.dll'); // 装载资源文件

if Hnd 0 then

begin

GetMem(Buf, 255);

LoadString(Hnd, Index, Buf, 255); // 使用LoadString装载指定句柄的字符串

Edit1.Text:= StrPas(Buf);

if Index = 1 then

S:= 'COMPUTER'

else

S:= 'WINDOWSXP';

Stream:= TResourceStream.Create(Hnd, S, RT_RCDATA); // 使用装载得到的句柄

try

Icon:= TIcon.Create;

try

Icon.LoadFromStream(Stream);

Image1.Picture.Icon.Assign(Icon);

finally

Icon.Free;

end;

finally

FreeMem(Buf, 255);

Stream.Free;

end;

FreeLibrary(Hnd);

end;

end;

这种方法似乎有点复杂。^_^。

将上面的方法变一下,将装载字符串的函数声明在DLL文件中,如:

library MyResDll;

uses

SysUtils,

Classes;

{$R MyRes.dll}

ResourceString

S1 = '电脑';

S2 = '视窗';

const

ResStr: array[0..1] of String = (S1, S2); // 将字符串放入数组常量

{ 声明函数获取字符串个数}

function GetStrCount: Integer; stdcall;

begin

Result:= Length(ResStr);

end;

{ 声明函数获取指定索引号的字符串 }

function GetResStr(Index: Integer): PChar; stdcall;

begin

if (Index = Low(ResStr)) and (Index = High(ResStr)) then

Result:= PChar(ResStr[Index])

else

Result:= '';

end;

exports

GetStrCount,

GetResStr;

begin

end.

引用的方法与一般的函数库引用方法一样。如:

type

TGetResStr = function(Index: Integer): PChar; stdcall;

procedure TTestForm.ReadSourceDef(Index: Integer);

var

Hnd: THandle;

GetResStr: TGetResStr;

begin

Hnd:= LoadLibrary('MyResDll.dll');

if Hnd 0 then

begin

@GetResStr:= GetProcAddress(Hnd, 'GetResStr');

Edit1.Text:= GetResStr(Index);

FreeLibrary(Hnd);

end;

end;

以上代码在Windows XP Professional + Delphi7下测试通过,如需完整的源码请mail我:fancy105@163.com。

DELPHi分布式多层设计,的瘦客户机的理解

大哥,瘦客户机指的是硬件结构好不好。

你说的这种叫做b/s结构的程序,也就是浏览器/服务器结构的程序,在简单一点就是网站。

你以前做的那种叫做c/s结构的程序,也就是客户端/服务器结构的程序。

delphi如果要作b/s结构的程序似乎很难。b/s结构一般都用jsp、asp、asp.net、php等来作。

欢迎访问我的论坛:)

期待您的支持:)

关于delphi代码阅读工具和delphi用什么开发工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/5558.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载