问题标签 [c++builder-xe7]

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 投票
1 回答
151 浏览

c++builder - C++ Builder XE7:ShellControls

上次我从 cpp builder 6 跳到 xe7 时,我找不到ShellListViewShellTreeView. 我搜索了整个论坛,但我找不到答案。有人可以解释一下它在哪里,因为我正在寻找它大约 3 小时。感谢帮助 :)

0 投票
1 回答
175 浏览

c++builder - 从 BPL 中的资源加载 VCLSTYLE

使用 Embarcadero C++Builder XE7。

我们已将一些样式放入资源中。样式已使用“项目 -> 资源和图像”对话框添加。生成的.rc文件如下所示:

在构建期间,我可以看到资源已构建并链接。

我现在想从我的主应用程序中访问它,该应用程序已链接到这个库,使用TStyleManager::Styles. 无论我是直接包含 RC,还是将其放入 BPL 中并用LoadPackage(). 如何让主应用程序加载这些资源?

0 投票
1 回答
2019 浏览

transactions - FireDAC ApplyUpdates 和事务控制

我正在转换用 DBExpress 编写的应用程序以使用新的 FireDAC 组件。打开查询、更改过滤器或排序、在网格中显示等基本操作正常工作。但令我惊讶的是,与 dbexpress 相比,某些函数的行为有所不同,我似乎无法理解。

我的应用程序包含数据库编辑器。当用户打开编辑器时,新事务通过调用方法启动TFDConnection::StartTransaction。当用户点击 OK 按钮时,活动事务被提交并且编辑器关闭。

在编辑器中,我使用两个查询来编辑记录。在第一个查询中,我手动编写 SQL 更新命令(如“ update TEST set NAME='some name' where ID=1234”)并执行它。到目前为止,一切都很好。

第二个查询连接到TDBAdvGrid(相当于TDBGrid来自TMS Software 公司)并且有CachedUpdates = true. 如果我更改该网格中的某些记录,我将调用TFDQuery::Postand TFDQuery::ApplyUpdates

奇怪的调用TFDQuery::ApplyUpdates不仅会提交此特定查询中的待处理更改,还会提交所有连接到TFDConnection. 我认为调用ApplyUpdates应该发出 SQL 更新调用,但不应该干扰事务控制。

我想给用户选项来拒绝他在数据库编辑器窗口中所做的所有更改。如何正确地做到这一点?ApplyUpdates关闭窗口时我应该推迟通话时间吗?那么它的目的是什么TFDQuery::CommitUpdatesTFDConnection::Commit如果只需要调用TFDQuery::ApplyUpdates?

0 投票
1 回答
1353 浏览

master-detail - fireac 主 - 细节关系不起作用

数据库表的第一个定义:

现在在 dfm 文件中定义我的数据源和查询:

两个数据源都连接到数据库网格。

在 FormShow 事件中,我调用以下方法:

主网格正确显示存储在表 UNCERTAINTY 中的所有项目,但详细网格始终为空。为什么 ?

0 投票
1 回答
81 浏览

c++ - 比较浮点舍入失败 System.Math.RoundTo C++ XE7

我一直在尝试将浮点值四舍五入到 4 精度,但没有成功。

想要的结果是 39.934500000000
实际结果是 39.934543423412

我尝试了很多方法,包括将浮点数舍入到给定的精度,但没有成功。

我正在研究 AMD FX83xx 64 位。程序使用 XE7 在 32 位 Debug 中构建

谢谢

0 投票
0 回答
28 浏览

drag - 在拖放操作期间更改窗口 z 顺序

我的应用程序中有三个窗口,分别命名为 Form1、Form2 和 Form3(主窗体)。Form2 可以停靠到 Form1 中。对应的属性设置如下:

Form1->DockSite = true;

Form2->DragKind = dkDock; Form2->DragMode = dmAutomatic;

Form3->DockSite = false;

开始拖放操作之前的窗口状态显示在 screenshot1 上。开始拖放操作后的窗口状态显示在屏幕截图2上。如您所见,在开始拖动操作后,Form3 立即移动到前台. 将 Form2 移动到 Form1 上的可停靠区域后,屏幕上会出现灰色矩形,指示停靠位置(即使此停靠位置隐藏在主窗体下)。释放鼠标左键后,Form2 正确停靠在 Form1 中,主窗体再次进入后台。如何在拖动过程中禁止主窗口(Form3)在 Form1 之上移动?我怀疑这与主窗体之上的 TAdvDockPanel 有关。在实践中,即使我想要,我也无法将 Form2 停靠在主窗体中,所以我不明白为什么 VCL 在无事可做时将主窗口移动到前台?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
2706 浏览

c++ - 何时使用 `__fastcall` 校准约定

我们有很多用 C++ 编写的基于 VCL 的应用程序。所有 VCL 方法(在__published类修饰符下都需要__fastcall调用约定。但是,无论出于何种原因,开发人员一直在添加__fastcall其他非 VCL 函数,即privateprotectedpublic.

根据这篇文章,这对我来说毫无意义,因为它不必要地使代码复杂化,甚至可能对性能造成影响(尽管可能可以忽略不计)。尽管如此,在建议我们在某些地方删除它之后,我被告知我们一直都是这样做的,所以要保持一致,这只是风格问题。我认为如果没有必要,它实际上会让人们感到困惑,所以这是不好的做法。

我的问题是,什么时候适合使用__fastcall调用约定?

0 投票
1 回答
169 浏览

c++builder - 从单选按钮标题中删除焦点矩形

当按下按钮时,我想从我的 C++ Builder XE7 应用程序中的单选按钮中删除标题的虚线焦点矩形。有可能这样做吗?

我想删除这个焦点矩形:

图片

0 投票
7 回答
3359 浏览

c++builder - 为什么TPrinter(XE7)今天突然出现问题?

我正在使用 C++ Builder XE7 VCL。

UTC 时间 2016 年 8 月 11 日下午 2:00 左右,我开始收到我的用户群关于打印问题的多起投诉。这些打印模块中的大多数已被证明多年稳定,在过去的 24 小时内我的项目没有更新。我能够在我的开发/测试环境中重现类似的问题。

在不涉及我的项目的许多细节的情况下,让我介绍一个非常简单的打印程序,它失败了:

在第一次尝试打印时,一切都按预期完美运行。如果我再次单击该按钮,TPrinter会生成一个小 PDF,但该 PDF 文件实际上已损坏并且似乎有一个文件句柄粘在它上面。

如果我第三次单击该按钮,则无法打印,并且出现以下错误消息:

我自己的测试是使用 PDF 打印机驱动程序完成的,但我收到的用户投诉包括各种本地打印机、网络打印机、PDF 打印机等。

在我的实际项目中,我有try/catch异常处理,所以实际结果略有不同,但与这个结果基本相似。结果显示了不稳定和/或内存泄漏的特征,而没有太多的错误消息。

我怀疑可能有一些 Microsoft Windows 更新与 Embarcadero DLL 纠缠不清,但到目前为止我还无法验证这一点。

其他人有类似的问题吗?

0 投票
0 回答
33 浏览

configuration - 如何恢复版本信息键以使用基本目标配置?

在 C++ Builder XE7 中(我猜所有版本都一样),Project OptionsVersion Info. 例如,如果我选择目标并为键Debug build configuration设置值。File description然后稍后我在 target 中做同样的事情All configurations。现在我希望 key inDebug build configuration使用All configurations.

似乎一旦我更改了任何内容,Version Info我就无法将其恢复为使用All configurations(基本配置)下的设置。在几乎所有其他组上,我可以扩展每个选项并删除该值以获得基值。但这在Version Info

我现在唯一的解决方案是破解项目文件,但我想必须有一种更简单的方法来恢复这些数据。