我已经使用Delphi一个多月了,但我仍然不知道正确的做事方式。
如果我有很多可以在很多项目中使用的方法,我应该将它们放在Unit,Form或DataModule上吗? 我没有使用过单位(本身),New->单元。我应该把我的实用工具放在那里吗?如果是这样,我可以看一个例子,教程或其他什么。 我过去曾使用过DataModules,虽然它给我的印象是它只应该在我处理数据库等时使用。
另一件事,我正在定制一些表单(例如,一些表单有一些特定的TEdits)。
要使用它,首先我将它添加到.dpr中的用途
CustomizedForm in '\CForm\CustomizedForm.pas' ;
然后我将CustomizedForm
添加到我的mainform中的用法(我将使用它)
这是正确的方法吗?我只是猜测,虽然我不是特别相信这是正确的方式,但似乎有效。
答案 0 :(得分:5)
我把我的所有人都放在一个叫做utils.pas的单位里。这个对我有用。
如果某些程序使用的实用程序具有不同的细分,而其他程序则不使用,您可能需要为它们创建单独的单元。
这是非常值得通过的优秀Beginner's Guide to Delphi Programming by Zarko Gajic的一部分。
有关最佳“视觉”介绍,请参阅Nick Hodges' Thirty Camtasia Demos in Thirty Days。这是Turbo Delphi不再提供的,但仍然非常类似于完整的Delphi,让您在视觉上了解如何在Delphi中做事。
答案 1 :(得分:3)
你放东西取决于他们做什么。与表单关联的单元实际上应该只包含与表单所呈现的用户界面直接相关的代码。由于多种原因,将业务逻辑直接放入表单单元被认为是不好的做法。如果您的实用程序方法不是特定表单的一部分,则最好将它们放在一个单元中。
对于数据模块,它们是用于保存非可视控件的容器。顾名思义,它们是为数据库访问而创建的,但它们可以容纳各种其他东西。例如,在工作中,我们有一些包含TImageList控件的数据模块,这些控件包含在整个应用程序的各个位置使用的图标列表。如果您有任何需要与多种不同表单共享的非可视控件,则数据模块是放置它们的合理位置。
是的,看起来你正在做自定义表格。如果你有第二个表单,第一个表单需要访问,(例如,当你点击按钮或菜单项时显示它),那么第一个表单的单位将需要第二个表单的单位使用条款。 (有很多方法涉及类注册技术,但这是一个高级主题。)
但是,您可能希望避免使用Delphi喜欢在表单单元中设置的全局表单变量。它使你的程序启动更慢,并且使用全局变量是另一个被认为是不好的做法。表单是一个像任何其他Delphi对象一样的对象,你可以用它的构造函数创建它,调用Show或ShowModal使它出现,然后调用Release或Free就可以了(在帮助文件中读取TForm.Release以了解何时当你完成它时,你需要使用它。
答案 2 :(得分:1)
对于初学者,根据类别创建一些不同的单位 - StringUtils.pas,MathUtils.pas,DateTimeUtils.pas等 - 根据类别将您的函数放入这些单元中,并确保在接口部分包含所有原型因此,他们将对其他单位可见(但不要过于关注如何对事物进行分类......)并将所有的util单元保存在一个单独的专用目录中。
然后,将您的Delphi或项目库路径指向该目录,您将能够使用所有实用程序单元中的功能。
最终,您可能希望将单元组成具有类函数或持久结构的类。
我自己通常创建一个项目组,其中包含一个名为MyProjectUtils.bpl的包,并将所有实用程序单元和类放入该包中。我从来没有真正将它作为一个包部署,但由于它们被包装在一起,我总是可以检查它们是否都可以正常编译,并且它们都可以立即在IDE中进行浏览等。