小编Bru*_*Gee的帖子

Delphi内存管理设计策略:对象还是接口?

关于Delphi内存管理,您的设计策略是什么?

  • 您更喜欢手动创建和释放对象的用例是什么?
  • Interfaces,InterfacedObjects及其引用计数机制首选的用例是什么?

您是否已经确定了参考计数对象的一些陷阱或困难?

感谢您在这里分享您的经验.

delphi memory-management interface

7
推荐指数
1
解决办法
841
查看次数

Delphi中的XmlHttpRequest和线程

我使用Delphi 2010,当我尝试在我的应用程序的单独线程中执行XmlHttpRequest操作时,我得到一个EOleSysError异常,并带有以下消息:'CoInitialize尚未被调用,ClassID:{F6D90F16-9C73-11D3-B32E-00C04F990BB4 }"

有人有任何想法来解决这个问题吗?(对不起,我的英语不好)

谢谢!

delphi multithreading xmlhttprequest delphi-2010

7
推荐指数
1
解决办法
853
查看次数

在Delphi 2009中使用泛型和匿名方法有什么问题?

我想开始使用泛型和匿名方法,主要是为了了解这是什么以及为什么我想要使用它们.

有了Delphi 2009,我经常读到泛型和匿名方法没有完全实现或有缺陷,这在Delphi 2010中得到了修复.

我想避免不得不怀疑这是我的错,还是Delphi 2009中的一个错误,每次有些东西不能按照我的预期运行.

我的问题是:
在Delphi 2009中使用泛型和匿名方法时,我会遇到什么问题?
我应该避免什么?

delphi generics anonymous-methods delphi-2009

6
推荐指数
2
解决办法
362
查看次数

什么是支持存储过程的Delphi桌面应用程序的最佳数据库?

我从Turbo Pascal 3开始,去了TP5,第二天买了TP6,叫做Borland,降级到TP5.5.买Delphi 3,现在有Delphi 5 Enterprise.由于两个原因,我对4-5年前编写代码失去了兴趣;

  1. 花了一整天时间为别人写ASP和SQL.
  2. PC Techniques杂志消失了.

我在共享软件市场上有一些程序可靠,但需要认真更新.我喜欢Delphi,或者当它是Borland时(在Borland收购DBase和所有其他垃圾之前),我想尽可能多地挽救我的D5E代码,但我怀疑我能做到.我计划升级到Delphi 2010.

我的下一个软件版本需要与数据库进行交互.我非常精通MS Sql,并喜欢将所有数据库代码放在存储过程中.

什么是与Delphi良好交互的最佳数据库选择,允许存储过程并且易于部署,即使是Geico gecko也可以部署它?

10/25/2009 18:53 PM EST
阅读安装Delphi 2010文档后重新打开


我下载了Delphi 2010的试用版并解压缩了安装.我一直在阅读包中包含的安装文档.我从zip包中的install.htm开始.

install.htm明智地告诉你看到以下两篇文章:

  1. 安装说明:http://edn.embarcadero.com/article/39754
  2. 发行说明:http://edn.embarcadero.com/article/39758

发行说明声明如下......

MSSQL驱动程序需要安装SQL Native Client.dbxmss.dll需要SQL Native Client 2008.dbxmss9.dll需要SQL Native Client 2005

我检查了我的机器以查看是否安装了SQL Native Client.不.我没有读完文档所以我做了一个注释来安装SQL Native Client.

我搜索了dbxmss.dlldbxmss9.dll,并在Embarcadero论坛上找到了一个非常有趣的帖子.在这里读线程.

在阅读了这个帖子并仔细思考后,我认为我不会使用Microsoft SQL Express.我不能依赖安装了正确驱动程序的客户.所以,我回来寻找一个不同的解决方案.

如果我向普通大众销售40美元的产品,我需要有一个防弹解决方案,不需要我的全新客户在我的软件工作之前更新他们的机器.

database delphi stored-procedures easy-install

5
推荐指数
1
解决办法
5175
查看次数

使用Delphi读取Excel电子表格

我需要使用Delphi 2010读取和写入Excel电子表格.没什么特别的.只需在不同的纸张上读取和写入特定单元格和范围的值.需要在没有安装Excel的情况下工作并支持Excel 2007.

我看过的一些事情:

  • 我已经尝试过使用ADO,它可以在整张表中选择所有内容,但我没有太多运气阅读特定的单元格或范围.

  • NativeExcel看起来很有前途,但它似乎没有积极开发,并且它们不响应电子邮件.

  • Axolot几款产品.主要产品似乎非常实用,但价格昂贵.他们有精简版,但它不支持Delphi 2010.

有什么建议?免费会很棒,但只要它可靠且得到很好的支持,我就会对商业解决方案持开放态度.

delphi export-to-excel import-from-excel

5
推荐指数
2
解决办法
2万
查看次数

Delphi 2010 IDE可以将相对搜索路径添加到项目中

我们最近从Delphi 2009升级到2010.

2009年适合我们的事情之一就是当您向项目添加搜索路径时(通过项目 - >选项 - > Delphi编译器 - >搜索路径)并使用浏览对话框,IDE将添加相对路径.

在2010年,这似乎已经变为绝对路径.有没有办法将这种行为改回相对路径?

我知道您仍然可以键入相对路径,但使用对话框进行浏览非常方便.

delphi delphi-2010

5
推荐指数
1
解决办法
788
查看次数

德尔福标准输入输出代码页面

Delphi 2010

当使用readLn过程从文件读取时,默认情况下我从代码页1251(windows的代码页)转换unicode字符串.

如何在1252或UTF16中更改此内容并从其他代码页中的文件中读取?

delphi codepages text-files

5
推荐指数
1
解决办法
1598
查看次数

xml中的xml示例/应用程序设置

任何人都可以帮助我学习如何使用XML.作为测试,我想使用XML而不是INI文件来保存程序设置.

谢谢

xml delphi

5
推荐指数
1
解决办法
7096
查看次数

用Delphi编译的可执行文件的内部结构

我们正在逆转Delphi的内部结构,有没有人知道任何有关Delphi可执行文件如何编译和链接在一起的好资源或其他细节,以及最终exe内部各个部分的布局是什么.

我不是在寻找高级细节,比如它有n个部分.

我正在寻找一些东西(以下是'组成'),例如'.text'部分有3个部分:

  1. 数据(一)
  2. 指针表(b)
  3. 代码与可以使用机制识别的数据交织(c)

等等,等等.


好的,我正在寻找有关结构的参考或知识.我已经拥有了下面提到的工具,还有更多来帮助从头开始进行逆向工程.

我应该提到我知道资源布局,因为这有很好的记录.这是我所追求的代码和数据部分中嵌入的内部编译结构.(例如,如何编译RTTI信息,事件处理程序和表单资源之间的映射等).

delphi reverse-engineering

5
推荐指数
3
解决办法
1958
查看次数

使用VCL作为Web(intraweb)作为向传统非分层(2层)Delphi win32应用程序添加Web界面的技巧确实有意义吗?

我的团队正在维护一个巨大的Client Server win32 Delphi应用程序.它是一个客户端/服务器应用程序(胖客户端),它使用DevArt(SDAC)组件连接到SQL Server.

业务逻辑经常"被困"在Component的事件处理程序中,无论如何,通过一定程度的重构,可以将业务逻辑移动到公共单元中(这项工作的很大一部分已经在重构期间完成了......维护遗留应用程序的人别写的非常令人沮丧,但这是一项非常普遍的工作).

现在有一个Web界面的请求,当然我有几个选项,在这个问题中我想关注VCL for web(intraweb)选项.

我们的想法是为客户端/服务器应用程序和Web应用程序使用公共代码(相同的pas文件).我听说很多人将遗留应用程序从delphi迁移到intraweb,但在这里我也试图保留Thick客户端.

这个想法是使用通用代码,可能会用一些编译器指令来编写特定的代码:

{$IFDEF CLIENTSERVER}
  {here goes the thick client specific code}
{$ELSE}
  {here goes the Intraweb specific code}
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

然后另一个问题是"迁移计划",假设我有300个功能,在第一个版本中,我将只在Web应用程序中提供50个.如何跟踪它?我在想(ab)使用Delphi接口来处理这个问题.例如,对于用户身份验证,我可以在过程中移动所有相关代码并声明如下界面:

type
  IUserAuthentication= interface['{0D57624C-CDDE-458B-A36C-436AE465B477}']
    procedure UserAuthentication;
  end;
Run Code Online (Sandbox Code Playgroud)

通过这种方式,当我在两个应用程序(胖客户端和Intraweb)中实现IUserAuthentication接口时,我知道该功能已被"移植"到Web上.无论如何,我不知道这种方法是否有意义.我制作了一个原型来模拟整个过程.它适用于"Hello world"应用程序,但我想知道它是否对大型应用程序有意义,或者这种接口的想法只会适得其反并且会适得其反.

我的问题是:这种方法有意义吗?(接口的想法只是一个额外的想法,它不像上面描述的通用代码部分那么重要)它是一个可行的选择吗?

据我所知,这取决于很多类型的应用程序,无论如何我是CRM/Accounting域中的通用,并且单个安装上的并发用户数通常小于20,峰值为50.

额外评论(更新):我问这个问题是因为我没有n层应用程序,所以我认为Intraweb是拥有一个与胖客户端有共同代码的Web应用程序的唯一选择.在我的特定情况下,从Delphi代码开发Web服务是没有意义的,所以我可以选择使用ASP.NET编写Web界面(复制业务逻辑),但在这种情况下我无法利用公共代码.简单的方法.是的我可以使用dll,但我的代码不适合.

sql-server delphi intraweb devart 2-tier

4
推荐指数
1
解决办法
2247
查看次数