问题标签 [c++builder-10.2-tokyo]
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.
firemonkey - C++ 构建器中的受控崩溃(练习调试 iOS FireMonkey 应用程序)
我想在崩溃后尝试象征性。我正在 C++ Builder 10.2.3 (Tokyo) 中构建我的应用程序。我怎样才能在代码中故意导致崩溃 - 以一种受控的方式。
谢谢,拉斯
cmake - 在 Embarcadero 中使用 CMake
我正在尝试让 CMake 与 Embarcadero 10.2.3 (Tokyo) 一起使用。我看到了一些帮助和博客。我看起来很好(到目前为止我还没有尝试过),但我对现有的 cbproj 文件感到困惑。我的印象是,如果我需要从 IDE 构建,我需要一个 CMake 文件列表 (CMakeLists.txt) 以及一个 cbproj 文件。所以在这种情况下,任何时候我需要添加文件或设置我都需要做。这是真的?
谢谢。
c++builder-10.2-tokyo - 10.2 Tokyo Debugger 不工作(蓝点不显示)
我已经尝试了至少一周,试图弄清楚为什么 Builder 10.2 Tokyo 的调试器不工作。缺乏关于此的信息(即使在 Wiki 上)也无济于事。
我们最近从 CB 2010 迁移了代码,调试器有时可以工作。当你清理一个包并构建时,它有时会起作用。
我在某处读到它可能与网络驱动器上的源文件有关。构建项目时,文件状态为“无调试信息”
项目选项从将 C++ 编译器 > 调试 > 调试信息设置为 true 的选项集中加载。
有任何想法吗?我们的项目处于停滞状态,因为我们无法执行任何调试。谢谢!
clang - 将旧项目从 C++Builder 10.2 迁移到 10.2.3 在运行时崩溃
我很难将我们的旧 C++Builder 10.2 项目升级到 10.2.3(我们在 64 位 PC 上使用 Clang 编译器,32 位应用程序)。
10.2.3 安装顺利(在干净的 Windows 10 PC 上), - 项目编译和链接 - 到目前为止,每个人都很开心。
但是,当在调试器中运行应用程序时,我可以看到this
MainForm 的指针(由于历史原因,一个相当大的对象)在单个方法调用调用中突然变为垃圾(当调用它自己的方法之一时 - 就在构造函数完成),这会导致严重的失败。
我试图注释掉__fastcall
特定方法的调用约定,然后调试器走得更远,但是__fastcall
由于this
指针损坏(我们有 1000 多个方法__fastcall
,所以将它们全部注释掉)不是一个选项)。
有谁知道发生了什么?
也许是一个新的 Clang 编译器开关?
大物体的问题?
我还尝试在 10.2.3 中从头开始构建一个全新的项目 - 但没有运气 - 同样奇怪的事情发生了。
c++builder - 包含在 Embarcadero C++ Builder 中生成的 VCL 样式实用程序的 .hpp 文件时出错
我想在 Embarcadero C++Builder 10.2 Tokyo 中使用库“VCL Style Utils”。
所以我创建了一个新项目并添加了:
构建成功并.hpp
为这些文件生成.pas
文件。
然后我创建另一个项目并包含.hpp
生成的文件。
但是在构建时出现此错误:
[bcc32 错误] Vcl.Styles.Utils.Menus.hpp(164):E2040 声明错误终止。
这是 Vcl.Styles.Utils.Menus.hpp 的第 163 和 164 行:
为什么这些声明不正确?
c++ - 为什么鼠标按下会阻止重新绘制组件?
我正在尝试创建一个捕获鼠标事件的自定义组件,尤其是 MouseMove。
我派生自TWinControl
,但我也尝试过TGraphicControl
, TCustomControl
,TTrackBar
等。
我的问题是当我在组件上按住鼠标时,它没有被重新绘制。
在我释放鼠标按钮之前,不会调用该Paint()
方法,即使我调用Invalidate()
.
TrackBar 是我想要制作的最接近的组件。您选择刻度,然后用鼠标移动它。但您不必释放鼠标即可看到刻度同时移动(再次绘制组件)。
如果我直接调用Paint()
,它可以工作,但背景不会被删除。
我错过了什么?
编辑:我再次尝试并确认是否按住鼠标,Invalidate(); 仅当我释放鼠标时才考虑通话。用下面的代码试试你自己,paint 仅在发布时调用:
c++builder-10.2-tokyo - UnicodeString::Delete 方法
我有一个 Unicode 字符串,我想限制为 30 个字符。我从查询中填充字符串,所以我不知道开始的长度。我想简单地剪掉所有超过30的字符。我找到了UnicodeString::Delete()
方法,但我不知道如何使用它。
我试过这个无济于事:
regex - 从 ^ 替换为空会将 ^ 匹配到新位置
我正在尝试删除字符串中的第一个0
和最后一个,但我没有得到:1
00211
021
21
表达式的一个类似问题^.
- 它不是只删除第一个字符,而是将它们全部删除。
我怎样才能解决这个问题?我正在使用 C++Builder 10.2.3 Tokyo。
Javascript 中的相同代码可以正常工作:
在 C++ 中,如果我使用 g++ 和std::regex
,它可以工作:
c++builder - 无法从“TFmxChildrenList”转换为“TRectangle *”
我是使用 C++ Builder 的新手,如果我犯了任何基本错误,我深表歉意。
我绘制了一个名为“Collection”的 TLayout,其中包含一个 5x5 的 TRectangle 网格。细胞被命名为“CellXY”。我认为在表单上绘制这些内容可能比用代码实例化它们更容易,现在我不这么想,但我仍然想以这种方式解决问题以更好地理解。
我正在尝试编写一个方法,该方法将返回一个指向 TRectangle 的指针,其名称包含传递给该方法的坐标。
目前,我正试图通过迭代 TLayout 集合的孩子来做到这一点:
但我得到一个错误阅读:
如果有人可以提供帮助,我将不胜感激!
vcl - 在运行时更改 TBitBtn 字形
我有一个带有 TBitBtn 的 VCL 表单和一个包含 2 个位图的 TImageList。在运行时,我运行以下代码行将其中一个位图放在我的 TBitBtn 上:
这成功地将位图放在 TBitBtn 上。然后稍后我运行以下代码行来更改位图,但没有任何反应:
两个位图都存在于图像列表中(0 和 1)。我可以交换代码行并证明图像列表没有问题。 这是一篇旧帖子,其中一个人似乎在 Delphi 中解决了这个问题。我想我必须先以某种方式清除字形,但我不知道如何在 C++ 中。