问题标签 [jvcl]

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 投票
0 回答
598 浏览

delphi - 使用 JVCL 和 OpenSSL 使用 Delphi 对 utf8 字符串进行 SHA1 的 RSA 签名

我需要使用 RSA 进行签名,但我在 SSL 方面很弱,所以我在互联网上找到了一些代码。

我找到了以下代码,可用于成功签署 ansistring:

但是,我需要签署 utf8 字符串 因为我不知道 libeay32.dll 中是否有宽字符串版本的 'rsa_sign' 和 'sha1' 函数及其名称,我只是不知道如何更改代码以适应utf8 字符串签名。

我想对如何修改这些代码或有其他替代方法来做同样的工作提出一些建议。谢谢你。

编辑1:根据大卫的建议,我修改了代码如下:

当内容只包含英语时,我得到了成功的结果,这和以前一样。但是,当有一些中文内容时,结果被对方(支付宝)报告“非法签名”拒绝。input_charset 被指定为“UTF8”。还有什么我在这里做错了吗?谢谢你。

0 投票
1 回答
481 浏览

delphi - 使用 Delphi 10.2.3 安装 JCL/JVCL 时禁用目标 IDE

我正在为 Delphi (10.2.3) 在我的机器上安装 JCL/JVCL。我从GitHub获得了最新的 Jedi 库。

我先安装了JCL。

当它询问我是否要“安装选定的功能”和“您要保留 JCL 专家设置吗?”时 我对两者都说是。

它完成说“安装已完成”。

但是,当我去安装 JVCL 时,我无法选择目标 IDE,因为它声称“未安装 JCL 2.2 或更高版本”。

我正在运行 Delphi 10.2.3 并尝试从 GitHub 安装最新的 JCL 和 JVCL。

JVCL 安装页面

任何指导将不胜感激。

0 投票
1 回答
5665 浏览

delphi - 在 Delphi 10.3 Rio 中安装 JEDI

我正在尝试在 Delphi 10.3 中安装 JCL/JVCL,以前我可以使用 Delphi 中的 getit 包管理器来下载它,但现在它似乎不在列表中?我尝试在 JVCL 上进行手动下载,但是当我尝试安装它时,我从编译器收到一页错误消息,但没有任何反应。

谢谢菲尔

0 投票
0 回答
50 浏览

delphi - TJvWizard 如何将页面更改为特定的 TJvWizardInteriorPage?

是否可以更改为向导上的特定内部页面?假设我在第 2 页,我想直接移至第 5 页,而无需用户单击下一步按钮 3 次。

谢谢!

0 投票
0 回答
150 浏览

delphi - 无论我单击何处或单击什么对象,都可以在表单上获得一般的 OnClick 吗?

我正在从事一个标签打印项目,我正在使用 FastReports 以及 JEDI 组件库中的 TJvWizard。我在 TpageControl 上嵌入了报表的设计器,并在表单中添加了按钮和其他组件,以便我可以从 Delphi 与报表的设计器进行交互,并将组件添加到报表或修改它们的属性。

我遇到的问题是我需要知道用户何时在报告中选择(单击)组件,以便我显示所选组件类型的正确属性。我已经询问过 fastreport 支持,但没有此类事件或报告在发生时以任何方式通知。

所以,我的问题是,有没有什么方法可以设置一个通用的点击事件或类似的东西,让我的表单知道鼠标被点击,无论用户点击的位置或内容,但要通知点击操作本身。

我已经尝试为嵌入报表设计器的 TTabSheet 设置 OnMouseDown 事件,但它不会触发任何内容。

如果有帮助,我有我的表单和 TJvWizard,向导有一些 JvWizardIneriorPage,其中一个是我的 TPageControl,它有两个 TTabSheet,我将设计器嵌入其中一个。

编辑:在Sertac 在评论中提供的另一个问题中,我找到了我需要的东西。

0 投票
1 回答
90 浏览

delphi - 使 TJvAppDBStorage 与 FireDAC/Firebird 一起工作

使用 Delphi 10.2 或 10.3、FireDAC 和 Firebird 2.5 或 3.0:我已经使用 JVCL TJvAppStorage 组件多年,无论是 INI/XML 存储还是 AbsoluteDB 数据库中的表,我都没有遇到过问题。我正在尝试通过 FireDAC 将应用程序从 AbsoluteDB 迁移到 Firebird,并且无法让 TJvAppDBStorage 写入条目 - 它不返回任何错误,但实际上没有任何内容写入表中。

我有一个包含 FireDAC 连接和驱动程序组件、JvAppDBStorage、TDataSource 和 TFDTable 组件的数据模块。FDB 存在包含适当的表,TFDTable 在该表上打开,JvAppDBStorage 的属性设置为匹配表的字段,并且 TFDTable、数据源和 JvAppDBStorage 正确链接。(这一切都反映了 AbsoluteDB 的存在和工作。)调用 dmStorage.FBStorage.WriteString(dmStorage.FBStorage.ConcatPaths(['General', 'LastStarted']), FormatDateTime(StdDTFmtStr, Now)); 不会抛出任何异常,但实际上没有任何内容写入表中。通过 TFDTable 进行正常的追加/设置字段/发布构造可以正常工作。

任何帮助表示赞赏!史蒂夫

0 投票
1 回答
148 浏览

delphi - TJvMemoryData.InternalSetFieldData 中的零星访问冲突

我正在尝试解决此代码中发生的 Delphi XE7 应用程序中的访问冲突,该代码是 Jedi VCL JvMemoryDataset 组件的一部分(Github 的当前源代码):

该代码偶尔会在地址 04020111 处导致读取访问冲突。此代码中是否存在明显问题?(CalcFieldLen 可能返回 0,不确定这是否与此处相关)。

我检查了 JVCL 的当前开发版本,并且 Move 调用与我的(旧)本地版本中的相同。

它可能与问题有关https://issuetracker.delphi-jedi.org/view.php?id=6276


相关(带有调试建议):从 D2006 移植到 XE5 后偶尔发生访问冲突,在 XP 兼容模式下不会发生

0 投票
1 回答
150 浏览

delphi - 如何使 TJvCaptionPanel 按钮的外观现代化?

TJvCaptionPanel在 Delphi 10.4 中使用 a 来显示带有标题和按钮的面板:

在此处输入图像描述

TJvCaptionPanelJEDI Visual Component LibraryGetIt 提供的 OpenSource 的一部分)

这是JvCaptionPanel1对象实例的对象代码,因此您可以将其粘贴到表单设计器中:

尽管JvCaptionPanel1.FlatButtons = True从上面的截图中可以看出,按钮具有老式的“石器时代”“雅达利”像素化外观:

在此处输入图像描述

这与我的应用程序的其他现代外观形成鲜明对比。

是否可以“现代化”按钮的外观以使它们看起来更“现代”?怎么可能做到这一点?

0 投票
1 回答
135 浏览

delphi - 为什么我在窗体上拖动组件时,TJvHidDeviceController 会抛出“无法识别设备”?

我在 Windows 10 上拥有 Delphi 社区版 10.3,并尝试使用 JEDI (JVCL v3.50) TJvHidDeviceControllerClass (v 1.0.35) 在 VCL 表单应用程序中控制我的 HID 设备。当我启动 Delphi 并关闭它并显示一个对话框时,也会引发此异常,前提是在加载项目时组件已经存在于表单上。在OnDeviceCreateError()分配了事件处理程序的情况下运行时,应用程序的行为正常,因为我将调试器设置为让应用程序处理此特定异常并将处理程序内的“已处理”布尔值设置为 true OnDeviceCreateError()。在 Delphi GUI 之外运行时,它也可以正常工作。

我一直在寻找有关解决此问题的线索,并且看到其他人也遇到过它。由于大多数关于此的帖子都很旧,我想知道我是否没有正确版本的库(https://github.com/project-jedi/jvcl)。JEDI 库是在一周前使用自述文件页面上的说明从 github 获取的。我的本地仓库是从主分支克隆的。我构建它并在本地安装它,没有任何麻烦。

尽管在运行应用程序时工作正常,但此异常有点令人讨厌,因为它在启动期间会与 Delphi GUI 本身混淆(显示异常对话框,单击确定后部分 GUI 丢失)。

我不认为我的代码是罪魁祸首,因为问题在任何应用程序代码开始执行之前就出现了。我怀疑 Delphi 本身在OnDeviceCreateError()分配处理程序之前运行组件的构造函数,因此在调色板放置或启动期间异常会一直传播到 GUI。为什么在关闭 Delphi 时出现异常对我来说更难解释。

是否有对此的修复或设置以防止 Delphi 在设计时运行构造函数?

我应该TJvHidDeviceControllerClass在表单创建期间创建实例吗?

提前致谢/汤姆