关于Delphi内存管理,您的设计策略是什么?
您是否已经确定了参考计数对象的一些陷阱或困难?
感谢您在这里分享您的经验.
我使用Delphi 2010,当我尝试在我的应用程序的单独线程中执行XmlHttpRequest操作时,我得到一个EOleSysError异常,并带有以下消息:'CoInitialize尚未被调用,ClassID:{F6D90F16-9C73-11D3-B32E-00C04F990BB4 }"
有人有任何想法来解决这个问题吗?(对不起,我的英语不好)
谢谢!
我想开始使用泛型和匿名方法,主要是为了了解这是什么以及为什么我想要使用它们.
有了Delphi 2009,我经常读到泛型和匿名方法没有完全实现或有缺陷,这在Delphi 2010中得到了修复.
我想避免不得不怀疑这是我的错,还是Delphi 2009中的一个错误,每次有些东西不能按照我的预期运行.
我的问题是:
在Delphi 2009中使用泛型和匿名方法时,我会遇到什么问题?
我应该避免什么?
我从Turbo Pascal 3开始,去了TP5,第二天买了TP6,叫做Borland,降级到TP5.5.买Delphi 3,现在有Delphi 5 Enterprise.由于两个原因,我对4-5年前编写代码失去了兴趣;
我在共享软件市场上有一些程序可靠,但需要认真更新.我喜欢Delphi,或者当它是Borland时(在Borland收购DBase和所有其他垃圾之前),我想尽可能多地挽救我的D5E代码,但我怀疑我能做到.我计划升级到Delphi 2010.
我的下一个软件版本需要与数据库进行交互.我非常精通MS Sql,并喜欢将所有数据库代码放在存储过程中.
什么是与Delphi良好交互的最佳数据库选择,允许存储过程并且易于部署,即使是Geico gecko也可以部署它?
我下载了Delphi 2010的试用版并解压缩了安装.我一直在阅读包中包含的安装文档.我从zip包中的install.htm开始.
install.htm明智地告诉你看到以下两篇文章:
发行说明声明如下......
MSSQL驱动程序需要安装SQL Native Client.dbxmss.dll需要SQL Native Client 2008.dbxmss9.dll需要SQL Native Client 2005
我检查了我的机器以查看是否安装了SQL Native Client.不.我没有读完文档所以我做了一个注释来安装SQL Native Client.
我搜索了dbxmss.dll和dbxmss9.dll,并在Embarcadero论坛上找到了一个非常有趣的帖子.在这里读线程.
在阅读了这个帖子并仔细思考后,我认为我不会使用Microsoft SQL Express.我不能依赖安装了正确驱动程序的客户.所以,我回来寻找一个不同的解决方案.
如果我向普通大众销售40美元的产品,我需要有一个防弹解决方案,不需要我的全新客户在我的软件工作之前更新他们的机器.
我需要使用Delphi 2010读取和写入Excel电子表格.没什么特别的.只需在不同的纸张上读取和写入特定单元格和范围的值.需要在没有安装Excel的情况下工作并支持Excel 2007.
我看过的一些事情:
我已经尝试过使用ADO,它可以在整张表中选择所有内容,但我没有太多运气阅读特定的单元格或范围.
NativeExcel看起来很有前途,但它似乎没有积极开发,并且它们不响应电子邮件.
有什么建议?免费会很棒,但只要它可靠且得到很好的支持,我就会对商业解决方案持开放态度.
我们最近从Delphi 2009升级到2010.
2009年适合我们的事情之一就是当您向项目添加搜索路径时(通过项目 - >选项 - > Delphi编译器 - >搜索路径)并使用浏览对话框,IDE将添加相对路径.
在2010年,这似乎已经变为绝对路径.有没有办法将这种行为改回相对路径?
我知道您仍然可以键入相对路径,但使用对话框进行浏览非常方便.
Delphi 2010
当使用readLn过程从文件读取时,默认情况下我从代码页1251(windows的代码页)转换unicode字符串.
如何在1252或UTF16中更改此内容并从其他代码页中的文件中读取?
任何人都可以帮助我学习如何使用XML.作为测试,我想使用XML而不是INI文件来保存程序设置.
谢谢
我们正在逆转Delphi的内部结构,有没有人知道任何有关Delphi可执行文件如何编译和链接在一起的好资源或其他细节,以及最终exe内部各个部分的布局是什么.
我不是在寻找高级细节,比如它有n个部分.
我正在寻找一些东西(以下是'组成'),例如'.text'部分有3个部分:
等等,等等.
好的,我正在寻找有关结构的参考或知识.我已经拥有了下面提到的工具,还有更多来帮助从头开始进行逆向工程.
我应该提到我知道资源布局,因为这有很好的记录.这是我所追求的代码和数据部分中嵌入的内部编译结构.(例如,如何编译RTTI信息,事件处理程序和表单资源之间的映射等).
我的团队正在维护一个巨大的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,但我的代码不适合.
delphi ×10
delphi-2010 ×2
2-tier ×1
codepages ×1
database ×1
delphi-2009 ×1
devart ×1
easy-install ×1
generics ×1
interface ×1
intraweb ×1
sql-server ×1
text-files ×1
xml ×1