问题标签 [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 投票
3 回答
526 浏览

delphi - 学习支持 Delphi 的最快方法是什么?

我已经接管了对一些用 Delphi 编写的应用程序的支持。我有编程经验,但在 Delphi 中没有,在 OOP 方面也很少。在经验丰富的 Delphi 程序员看来,学习如何破译原始程序员的指令并纠正代码中的一些问题的最快方法是什么?

顺便说一句,代码是用 Delphi 5 编写的,原始程序员无法回答有关他工作的问题。

TIA

0 投票
2 回答
1089 浏览

delphi - Delphi:构造不调用重写的虚拟构造函数

我有一个示例后代TBitmap

在运行时,我构造其中一个TMyBitmap对象,将图像加载到其中,并将其放入TImage表单中:

在里面TPicture.SetGraphic你可以看到它通过构建一个新的图形并调用.Assign新构建的克隆来复制图形:

构造新图形类的行:

正确调用我的构造函数,一切都很好。


我想做类似的事情,我想克隆一个TGraphic

除了这永远不会调用我的构造函数,也不会调用TBitmap构造函数。它只是调用TObject构造函数。施工后:

类型是正确的,但它没有调用我的构造函数,但其​​他地方的代码相同。

为什么?


即使在这个假设的人为示例中,它仍然是一个问题,因为TBitmap没有调用的构造函数;内部状态变量未初始化为有效值:


TPicture 中的版本:

反编译为:

我的版本:

反编译为:

更新一

将“克隆”推送到单独的功能:

没有帮助。

更新二

显然,我清楚地提供了我清晰代码的清晰屏幕截图,清楚地表明我的清晰代码显然是所有清晰的。清楚地:

在此处输入图像描述

更新三

这是一个带有OutputDebugStrings 的明确版本:

原始结果:

和格式化的结果:

更新四

我尝试关闭所有编译器选项,我可以:

在此处输入图像描述

注意:不要关闭Extended syntax. 没有它,您将无法分配Result函数的 (未声明的标识符 Result)。

更新五

按照@David 的建议,我尝试在其他一些机器上编译代码(全部为 Delphi 5):

  • Ian Boyd(我):失败(Windows 7 64 位)
  • 戴尔:失败(Windows 7 64 位)
  • 戴夫:失败(Windows 7 64 位)
  • 克里斯:失败(Windows 7 64 位)
  • 杰米:失败(Windows 7 64 位)
  • Jay:失败(Windows XP 32 位)
  • 客户构建服务器:失败(Windows 7 32 位)

这是来源。

0 投票
3 回答
5552 浏览

delphi - BDE、Windows 7 和 UAC

我有一个用 delphi 5 编写的非常旧的应用程序,在一些使用 BDE 的客户中运行。现在一些使用 Windows Vista 和 7 的用户已经尝试了多用户访问的一些问题。我认为这些问题与net.and.lck文件的位置有关。所以问题是BDE在 Windows Vista 和 7 下配置以避免权限和 UAC 冲突的正确方法是什么?

0 投票
3 回答
2375 浏览

wcf - 从 Delphi 5 调用 WCF

我们有一个非常古老的应用程序。它在要重写的块上。但是由于它非常复杂,因此重写一直被推迟。

现在我需要知道是否有办法让 Delphi 5 应用程序调用 WCF Web 服务?

我知道当 Delphi 5 发布时,WCF 甚至在其发明者的眼中都没有闪烁……但是可以做到吗?如果是这样,怎么做?

0 投票
3 回答
1088 浏览

delphi - Delphi,调试初始化部分

我的问题是系统的某些部分引发了异常,但它发生在初始化期间,我无法弄清楚它在哪里或哪个异常。系统刚开始运行,然后突然关闭。

你有什么方法可以调试这种情况吗?

我正在使用Delphi5,以防万一。

0 投票
3 回答
402 浏览

delphi - 将应用程序从 Delphi 迁移到 Silverlight C#

我有一个使用 Delphi 5 和 Paradox 开发的遗留桌面会计应用程序,我打算将其迁移到带有 SQL Server 的基于 Web 的 Silverlight(为了 UX)应用程序。

任何人都可以提出一种快速实施的方法吗?

我知道这是一个非常开放的问题,我不是在寻找具体的答案。相反,来自 SO 用户的意见/经验。

我主要关心的是迁移方法、可能的架构和设计模式(对于 SL,我知道 MVVM)实现。

0 投票
2 回答
1453 浏览

sql-server - 表字段更改后更新

我有一个旧的 Delphi 系统的问题,这个系统将数据插入到 SQL Server 表中。

10 年后,将表的字段从 100 个字符更改为 255 个字符长。

系统选择该表的所有注册器,并在转换后将它们放在另一个表中。这很好用。

问题在于系统何时更新字段。

那告诉我错误

EDBEngineError 带有消息“无法执行编辑,因为另一个用户更改了记录。

更新模式:upWhereAll

cuentas 表:

  • NUM_SOL nvarchar 6 *PK
  • 墙小号 1
  • SEND_DATE 小日期时间 4
  • OBS_CRED nvarchar 255
  • FLCC 真实 4
  • 街道 nvarchar 30
0 投票
2 回答
2528 浏览

delphi - 为什么 Delphi 中的 Fast Report VCL 在编辑变量时会引发堆栈溢出异常?

我正在使用 Delphi 5 和 Fast Report 4 来制作报表应用程序。我在设计时在 MyReport.f3 中定义了一个变量“ReportTitle”,并在运行时为它分配了一个值。为什么我的代码会引发 EStackOverflow 异常?

这是代码示例

0 投票
2 回答
1602 浏览

delphi - Delphi 5构建错误:找不到所需的包错误

我正在使用 dcc32 编译器从命令行编译我的项目。我遇到了这个错误“找不到所需的包 X”但是我确实在 Windows 路径变量中定义了 X.* 中所有文件的路径。我被这个错误困住了。非常感谢任何见解!谢谢

0 投票
3 回答
3309 浏览

delphi - 访问可执行文件中包含的 JCL 调试信息?

有没有办法访问包含在可执行文件中的绝地调试信息(JDBG)?

Microsoft 调试工具已将我指向二进制文件中的堆栈链,我想知道这些偏移量对应的方法/过程/函数:

显然我在打电话SendMessage,但我不知道从哪里来。可执行文件是使用嵌入在可执行文件中的 Jcl 调试信息构建的;但我不知道如何阅读它。

查看 中的一些函数和类JclDebug.pas,一切似乎都是为了获取当前进程内部的调试信息,例如:

在我当前进程的地址空间中获取一个地址。它找出HMODULE地址所在的位置,例如:

  • 堆栈溢出.exe
  • GDI32.dll
  • USER32.dll
  • 内核基础.dll
  • dwmapi.dll
  • UxTheme.dll

我在想我可以使用LoadLibrary(返回一个HMODULE)来手动加载一个模块,然后将它提供给一些通过模块图像挖掘以获取调试信息的类:

除非它受到保护。

我正在尝试(希望)我可以编写一个工具来选择二进制文件(*.exe),输入地址,然后返回

  • 功能
  • 方法
  • 文件
  • 电话号码

的偏移量。

例如

可能的?


编辑:我的第一个粗略和现成的方法是提取压缩map文件,以便我可以查看它。但它没有保存为资源():

在此处输入图像描述

虽然通用工具会更有用:

在此处输入图像描述


更新

我尝试使用TJclDebugInfoList;我意识到数组属性ItemFromModule将访问受保护的方法:

除了其中一个TJclDebugInfoSource后代类中的代码尝试将其假定为虚拟地址的内容转换为偏移地址时出现下溢。