9得票3回答
如何使用Indy 10和OpenSSL通过HTTPS下载文件?

我有以下任务:使用HTTPS和身份验证下载文件。Indy似乎是最好的选择,但由于某些原因,到目前为止它还没有起作用。我已经做了以下准备: 一个TIdHTTP组件,用于下载 一个TIdURI组件用于创建URL 一个TIdSSLIOHandlerSocketOpenSSL组件,应该提供安全连接...

9得票4回答
Delphi中的重复设置逻辑

对于类的每个setter,我都必须实现一些事件逻辑(OnChanging,OnChanged): procedure TBlock.SetWeightIn(const Value: Double); var OldValue: Double; begin OldValue := FWei...

9得票2回答
Delphi - 在运行时创建的TXMLDocument生成AV,而表单上的组件正在工作

我正在运行时创建一个 TXMLDocument 实例,用于加载和解析 XML 文件。您可以检查下面的代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

9得票4回答
Delphi中从.dfm文件中删除属性的快速方法

我最近修改了其中一个组件,结果它不再使用以前使用过的某些属性。然而,这些属性写在项目的多个 .dfm 文件中。当我尝试编译该项目时,出现“无法读取文件:属性 <...> 不存在”的错误提示。复杂的问题是该属性值是二进制数据(存储在多行中),我不能使用 Delphi replace ...

8得票6回答
Delphi - 如何确定 TDataSet 在插入/编辑状态时是否已被修改?

当数据集处于插入状态时,我该如何找出数据感知组件字段是否已被修改?我想知道一个字段是否“真正”被修改。(我不在意用户是否在字段中输入了一些内容,然后将其全部删除,这意味着发生了修改)。 DataSet.Modified、DataSet.UpdateStatus或ChangeCount都无法解...

8得票3回答
缓存计算值的方法

在我们正在开发的Delphi应用程序中,我们有一个包含大量相关对象的结构。这些对象的一些属性具有在运行时计算的值,我正在寻找一种缓存更加密集计算结果的方法。我采取的方法是在第一次计算时将值保存在私有成员中。以下是一个简短的示例代码: unit Unit1; interface type ...

8得票1回答
如何在TVarRec和Variant之间进行转换?

有没有一种标准的方法可以在TVarRec和Variant值之间进行转换? 我想解析“array of const”,并使用这些值来填充TMSQuery中的参数。为此,我正在使用列名列表(从TMSQuery.KeyFields生成),并将数组中的值与KeyFields中的列名(按位置)匹配,然...

8得票7回答
我的Delphi应用程序初始化完成后,我应该把代码放在哪里才能执行一次?

我有一些功能希望在我的应用程序完成初始化和主窗体被创建后执行。我曾经将代码(称其为ProcedureX)放在窗体的OnShow事件中,但我刚刚注意到它被调用了两次,因为OnShow事件会被调用两次。它会在主程序DPR调用时触发: Application.CreateForm(TMainFor...

8得票4回答
如何从我的软件中所有打开的表单中获取列表?

在终止我的应用程序之前,我希望要求用户关闭所有已打开的表单。 如何自动获取已打开表单的列表? 我正在使用Delphi 2006,并且没有使用表单的自动创建,但是我正在使用使用Application.CreateForm和自动创建的表单的引用变量。 致敬。

8得票4回答
Delphi - 如何找出当前有焦点的模态对话框并将其置于前台?

我有一个 Delphi 2006 应用程序,可以在错误条件下弹出模态对话框。但它似乎陷入一种状态,其中一个这些模态对话框打开并位于主表单前面,但两个表单都不响应消息。单击任何一个会出现“咚”的声音。应用程序正常运行,UI 正在更新主表单,但您无法执行任何操作。我猜主表单下面可能还有另一个模态对...