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

delphi - 数字编辑控件,内部带有平面按钮,没有计算器

我正在用 RAD Studio 编写一个 C++ 项目,但这也适用于 Delphi。

我需要一个编辑控件,其中用户只能输入浮点数(2 个小数位)并且可以通过单击编辑控件本身内的按钮(实际图标)来恢复原始值(取自变量,此处不重要)。

这就是我所做的,使用TJvCalcEdit来自 JEDI 库。

在此处输入图像描述

控制定义:

单击按钮时调用的方法:

问题:在此方法结束时,控件下方会出现一个计算器弹出窗口,需要用户执行操作。我不希望这种情况发生,因为我正在以编程方式更改值。我猜这是一个默认值,因为这样的按钮是用来触发计算器的。此外,您看到的值 (255) 没有小数点,只有在计算器关闭后才会显示。

在此处输入图像描述

那么,我可以禁用此行为吗?或者有人可以建议我使用另一种控件(标准、开源或免费)的解决方案吗?

0 投票
1 回答
3125 浏览

delphi - 安装 JVCL 时出错

我已通过 Install.bat 安装JCL并成功安装。但是,当我尝试通过 install.bat 安装JVCL时,我收到如下错误消息:

有人知道这里有什么问题吗?

提前致谢。

0 投票
1 回答
12035 浏览

delphi - 如果我以非管理员用户身份运行安装程序失败,如何安装 JVCL 包

我用的是Win7。我已经在我的 Delphi XE 中安装了 Jedi VCL 组件并且它工作正常。但是,如果我尝试将 XE 作为另一个用户帐户(没有管理员权限)运行,JVCL 组件不会出现在工具面板中,而我需要以客户端用户身份运行才能使用安装为的 RxLib 工具和组件客户端用户。

有没有办法以管理员用户身份安装或使用 Jedi VCL 组件?

请帮帮我...

如果我以普通用户身份运行 bat 文件,出现的错误消息是:

预先感谢。

0 投票
2 回答
1174 浏览

delphi - 如何使用 TJvAppIniFileStorage 在 INI 文件中添加新部分

我有一个用 Delphi XE 编写的数据库应用程序项目,并使用 dbExpress 连接到 MySQL 数据库。我使用 JVCL 网格组件来显示数据集中的记录。如果我可以使用另一个 JVCL 组件来执行 FormStorage,它会更有效。

有人建议我使用TJvFormStorageTJvAppIniFileStorage用于表单存储。我在这个项目上有很多表单,所以我需要在我的 INI 文件中添加新部分来存储表单大小值,但我不知道如何使用 TJvAppIniFileStorage 来做到这一点。

TJvAppIniFileStorage 只是提供 DefaultSection() 方法,这意味着它只能修改和写入一个声明为默认值的部分。

任何人都可以向我描述如何使用 JVCL 的 TJvAppIniFileStorage 添加新部分?

提前致谢。

0 投票
1 回答
1498 浏览

delphi - 为什么 TJvFormStorage 不能正确存储表单位置?

我有一个名为fmTest. 如果程序终止,我使用JVCL TJvFormStorage将表单位置、表单大小和表单位置存储在 INI 文件中。

但是,如果我尝试在运行时将 windows 控件拖到底部,直到它只在任务栏附近看到标题部分,然后我释放它并终止程序,程序fmTest启动时不会在该位置启动再次。

有人建议我使用StoredPropsandStoredValues方法,TJvFormStorage但我真的不明白如何使用这些方法。

为什么 TJvFormStorage 不能正确存储表单位置?有什么方法可以正确存储表单位置TJvFormStorage吗?

提前致谢。

0 投票
1 回答
585 浏览

delphi - 释放包含 TJvAppDBStorage 的数据模块会在 TComponent.RemoveNotification() 中引发访问冲突

我有一个无法释放的数据模块(听起来很有趣)。无论我是尝试手动销毁它,还是让另一个组件(甚至Application)为我完成它,我都会得到一个带有此堆栈跟踪的 AV:

这个数据模块包含一堆TADOxxx组件,加上两个TJvDataSource、一个TApplicationEvents、一个TClientDataSet和一个TJvAppDBStorage。它的代码只包含打开 ADO 连接、向表中写入一些记录、运行一些查询等(没有什么不寻常的)。除了我上面提到的之外,它不拥有任何其他组件。我很困惑这个虚假的电话是从哪里来RemoveNotificaion()的。有任何想法吗?

更新

删除后TJvAppDBStorage,我可以销毁数据模块。这是组件的属性:

有人用过JvAppDBStorage吗?这是正常预期的行为吗?

0 投票
0 回答
1056 浏览

delphi - 读取 Windows 事件日志

我想从 Windows EventLog 中读取事件。我发现了两个机会:WMI 和 API-Commands。但目前我使用 JEDI VCL (JVCL) 中的 JvNTEventLog 组件(也许它使用 API,我不知道)。但我有一些麻烦。例如命令“JvLog.EventRecord.Computer”应该向我显示计算机名。这适用于安全日志(John-PC 说),但在系统日志和应用程序日志中它只是空的。但相反,在安全日志中显示“uditing”的“JvLog.EventRecord.Source”在系统日志中显示了我的计算机名,但被切断了。现在是“n-PC”。我也无法阅读“JvLog.EventRecord.Message”。在系统和应用程序日志中它是加密的。“JvLog.EventRecord.EventString”也被加密了,安全日志中的乐队看起来只是混合和有线。那么直接使用 API 命令会更容易吗?还是我应该使用 WMI 方法?

谢谢 :)

0 投票
1 回答
1839 浏览

multithreading - Delphi:是否应该“不暂停”创建线程?

我一直在尝试追踪 Jedi VCL 中的内存泄漏JvHidControllerClass.pas,我在源历史记录中遇到了这种变化:

旧版本:

当前版本:

根据经验,我发现如果您创建一个挂起的线程:

然后线程立即开始运行。在这种情况下,它将尝试访问尚未初始化的对象:

立即尝试填充Report并访问该对象Device。问题是它们还没有被初始化;这些是线程开始后的下一行:

我意识到这是一种竞争条件;并且用户在生产中遇到崩溃的可能性非常低,因此离开赛车崩溃可能是无害的。

但我走远了吗?我错过了什么吗?是否调用:

不启动线程并立即运行?这真的是(故意)添加到 JVCL 中的竞争条件回归吗?有什么秘密吗

这使它成为正确的代码:

?

在被误叫而被烧毁后

我已经将它归档在我的脑海中,因为它永远不会正确。让线程立即启动(当您必须初始化值时)是否有任何有效用途?

0 投票
2 回答
1942 浏览

delphi - 由于 jcl 要求,jcvl 无法正常工作

我正在尝试手动安装delphi xe2 JCLjvcl

我已经按照指示安装了 JCL,它似乎安装没有问题。现在我尝试加载 JVCL 包 16 ,它打开 delphi 并开始加载库,当它到达绝地代码库 MPL1.1 时,我开始收到如下错误

这不是唯一一个我得到很多生病的帖子,以防万一它有帮助

等...如果您需要,我可以添加休息。

但是每个 - 都是它自己的对话框,带有 [ignore][cancel][ignore all]

现在,在我按 Ignore 50 次后,它最终会加载项目,当我尝试为 JVCl 包构建所有项目时,它说找不到所需的包 jcl。

在图书馆路径中我有

在浏览路径中我有

在 DCU 调试路径中我有

0 投票
0 回答
683 浏览

delphi - 在 TJvWizard 中以编程方式设置 Segoe UI Light

我正在使用一个TJvWizard组件,我想将其标题标题字体设置为使用 Segoe UI Light。在我的表单OnCreate方法中,我正在执行以下操作:

此代码正确设置字体大小,但字体不会更改为 Segoe UI Light,而是继续使用父字体(即 Segoe UI。)

作为一种解决方法,我这样做了:

这可以解决问题,但对我来说它闻起来很有趣。另外,我不知道分配是如何工作的。它是否保留参考?我应该保持f.Free线路吗?

编辑:作为附加信息,我安装了带有这些字体的相当新版本的 Office 2013。我还观察到我无法在其他应用程序中选择 Segoe UI Light,例如 InkScape。

此外,在 Delphi 属性编辑器中,我可以使用字体选择对话框来选择它,但名称“Segoe UI Light”没有出现;相反,我必须选择 Segoe UI 并在字体样式列表中选择 Light 样式。

字体对话框

此外,使用下拉列表选择字体名称也不起作用:

未设置 Property Inspector 的字体名称

所以,我认为这与我拥有的字体版本和一些扩展属性有关(实际上,在我的 Fonts 文件夹中我只能看到 Segoe UI,打开它会打开 10 个窗口。)

Windows 字体文件夹中的 Segoe UI

我仍在寻找解决方法(这听起来可能是相关的,但他们没有遵循它)