问题标签 [delphi-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1183 浏览

delphi - 使用 Indy 在 Delphi 5 中下载 CSV

我知道有很多 Indy 线程,但我找不到与我的情况相匹配的线程。

我收到了一个带有用户名和密码表单的 URL。然后对有多个超链接的 URL/reports.php 执行操作。

这些链接中的每一个都将指向带有 URL 变量的页面,例如,reports.php?report=variablename 将立即开始下载。

到目前为止我的想法:

每次尝试我都会收到“IOHandler 无效”错误。显然我没有正确地发布到初始页面,但谁能告诉我我错过了什么?我也可以在登录后直接点击下载 URL 还是必须使用 cookie?

谢谢

0 投票
2 回答
2365 浏览

delphi - Delphi 5 Indy/ics SSL 解决方法?

我收到如下错误:

“IndyProtocols5 不使用或不支持 IdSSLOpenSSLHeaders..”

当尝试用我的 Delphi5 安装 Indy 9 或 10 时,注意到这对其他人来说是个问题。这会导致异常:

“无法加载 SSL 库”

使用 IdHttp.IOHandler 时。

我继承的应用程序包括许多不受支持的 D5 组件,不幸的是升级到 D6+ 超出了我的技能范围。我想最初使用 Indy 发布和下载 CSV,但也可能调用 Web 服务。

是否有已知的解决方法,或者我应该开始寻找其他选项,例如 ICS,它可能仍然适用于 D5。

谢谢

0 投票
1 回答
745 浏览

delphi - Delphi OpenTools API:如何获取 AfterCompile 通知?

OpenTools API 定义了一个接口,用于在编译之前之后得到通知:

我创建了一个导出此界面的向导:

并通过以下方式注册向导:

但两者都不是:

  • IOTAIDENotifier.BeforeCompile
  • IOTAIDENotifier.AfterCompile
  • IOTAIDENotifier.FileNotification
  • IOTAIDENotifier50.BeforeCompile
  • IOTAIDENotifier50.AfterCompile

被称为。我究竟做错了什么?


唯一叫过的就是

  • IOTAWizard.GetName
  • IOTAWizard.GetIDString

以该顺序。

0 投票
1 回答
1905 浏览

delphi - Delphi OpenTools API:如何获取目标 exe 名称?

给定一个,我如何获得目标可执行文件的名称IOTAProject

来自GExpert 的 OpenTools API 常见问题解答

如何确定二进制/exe/dll/bpl/ocx/etc 的文件名。由编译或构建生成?
- 对于 Delphi 8 或更高版本,请使用IOTAProjectOptions.TargetName.
- 对于早期版本,该方法实现起来要复杂得多,因为它可能涉及扫描指定项目可执行文件扩展名的$E指令,然后在“OptputDir”指定的路径上查找二进制文件项目选项,或项目目录(如果该选项为空)(在许多其他可能性和复杂性中)。实现此类工具的最佳方式可能是从CodeGear CodeCentral 示例 ID 19823中的示例代码开始。

就我而言,我适合后者。给定一个IOTAProject接口,它的胆量是什么:


如果是 Delphi 8 或更高版本,(未经测试的)答案是:

但更难的是复杂的预德尔福 8。

Jedi JCL 内部有十几种方法TJclOTAExpert,它们可以一起用来模拟:

我将努力通过该代码。几周后,我希望能够发布我自己问题的答案。

但与此同时,我会打开它,让其他人因能够回答我的问题而获得声誉。

0 投票
3 回答
5161 浏览

delphi - Delphi5中的浮点除零异常

我的应用程序是用 Delphi5 编写的。我正在使用 madExcept 来追踪错误。我找到了一个“零浮点除法”异常,它不应该出现在哪里。引发它的代码段如下所示:

其中“c”实际上总是具有值“1”。

日志的堆栈跟踪:

我在某个时候遇到了另一个异常,确实发生了除法,但是除数是一个变量,当异常发生时它的值也为“1”。我能够调试和重现。

我的问题:我错过了什么?是否有一些我不知道的关于浮点除法的误报?

此外:我没有在异常点使用任何 C++ DLL,因为它们倾向于以不同的方式处理 FP 除法(返回 NaN 或 +/-INF 而不是引发异常)。

任何指针表示赞赏。

0 投票
2 回答
3378 浏览

delphi - TWebBrowser 与嵌入的 Youtube 剪辑一起崩溃

这是我的代码:

测试.html

我的应用程序在这两种方法中都崩溃了。我得到一个未处理的 win32 异常(由 Flash player 引起Exception EInvalidOp in module Flash10u.ocx at 00108657. Invalid floating point operation)。

  • 我在 D5、D7、D9 上尝试了此代码。
  • 我试图重新导入 SHDocVw.dll。
  • 我还尝试使用 EmbeddedWB 控件而不是 TWebBroser ...
  • Internet Explorer/Avant/Maxthon 对这个 HTML 没有任何问题(都基于 IE ActiveX)。

有什么建议或修复吗?

我怎样才能捕捉到这个错误,甚至抑制它?

有没有办法通过 TWebBrowser 事件即时操作或更改 HTML,这样我就可以显示图像而不是 Flash 播放器,就像 Ad-Blockers 的工作原理一样?(我的客户通过 Internet 在他们的站点中拥有该代码,我的 Delphi 应用程序提供了快速预览)

更新

我使用 TTimer 来启用/禁用 FPU(基于 Arjen 的想法):


更新 (2)

我最终在应用程序启动时屏蔽了 FPU 异常。从那以后,对我的申请没有(已知的)影响。

0 投票
2 回答
1328 浏览

delphi - delphi - 带有可包装项目的 TRAdioGroup

我需要一个关于 Delphi 5 的小例子,说明无线电组中的项目文本如何在需要时换行。

我在 Delphi 2006 中通过访问按钮属性解决了它,但在 D5 中该属性不存在。

LE:除了 SetWindowLong 之外还有其他解决方案吗?

0 投票
1 回答
227 浏览

delphi - Delphi 5 - TField 上的大小不匹配

在 ADOQuery 上,我创建了一个 String Tfield 并将其大小设置为 24(来自 Fields Editor)。

当我尝试为该字段分配 24 个字符长度的字符串(qry.fieldbyname('fieldname').asString时,只添加前 20 个字符。我不明白为什么。

0 投票
1 回答
495 浏览

delphi - TIBDataSet.ExecSQL

我是 delphi 的新手,我非常喜欢它,我正在使用 delphi 5 开发一个项目,我运行了一些如下代码:

代码使用了两个条件定义,第一个完美运行,但另一个让编译器发疯!它说“ExecSQL”由于某种原因是一个未声明的标识符......

该代码应该可以完美编译,但由于某种原因,它尖叫 ExecSQL 不正确,欢迎任何帮助。

0 投票
1 回答
578 浏览

delphi - Sybase 12.5-BDE-ADO “where myColumn=null”失败

我们有一个旧应用程序读取 SQL 文本文件并将它们发送到 Sybase ASE 12.51。我们的旧应用程序是用 Delphi 5 编写的,并且在此过程中使用 BDE TQuery 组件,并使用 BDE SQLinks for Sybase 访问 Sybase。

伪代码:

最近,我们使用 Sybase 提供的 ADO 提供程序将 DB 访问层移至 Delphi XE ADO 实现 - TADOQuery,仍然使用相同的模型:

迁移到 ADO 后,我们发现某些数据丢失了。我们将失败追溯到这个 SQL 构造:

知道这个结构在语义上充其量是有问题的,当我看到这段代码时,我做了一个“双重考虑”,但 Sybase 12.5 接受它 - 但是使用 ADO,这个段失败了。

我们决定改变:

然后加载丢失的数据 - 解决了这个部分和其他几个部分的问题。

有人对这种行为有解释吗?ADO 在哪里/为什么明显拦截并拒绝了这个序列,而 BDE 却通过了它?

TIA