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

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 回答
1403 浏览

c++ - 宏:如何更改 __VA_ARGS__ 中的每个值

我正在使用 C++ Builder XE3。

目前我有如下宏:

现在我想让所有参数都是 AnsiString。我很容易处理这个论点:消息如下:

但是对于VA_ARGS,我不知道如何处理参数以确保放入的所有参数OTHER_LIB_LOG都是 AnsiString。

修改源代码对我来说很难 OTHER_LIB_LOG,所以我必须使用宏来完成。

任何帮助将不胜感激。

0 投票
1 回答
1677 浏览

c++ - 在 C++ Builder XE2 中重命名 VCL Form 类

在工作中,我们有一个相当大的 C++ VCL 表单应用程序。它在 Embarcadero XE2 中编译,但可以追溯到很多年前。我需要向此应用程序添加一个新表单。

当您执行“文件 > 添加新 > VCL 表单”时,会在类名所在的位置创建一个表单TForm1。还创建了一个指针,如下所示:TForm1 *Form1

出于显而易见的原因,我想重命名表单和指针,比如TStuffFormand *StuffForm。问题是我无法让它工作!

对于任何实际的 XE2 用户:这样做的规范方法是什么?

我曾尝试通过仔细替换字符串来直接在代码中重命名,但它不起作用。IDE 发疯了,向我发出多个模式弹出窗口,抱怨缺少 TForm1 类。那太不愉快了,我放弃了。

我也尝试了 IDE 中的重构功能,但这也不起作用。所以现在我有点卡住了。

0 投票
2 回答
263 浏览

c++builder-xe2 - 全局变量初始化和终结

我有一个在两个线程之间共享的关键部分:

我已将此变量声明为全局变量。现在因为 Delphi 风格的类必须使用 operator new 来构造,所以我将上面的声明修改如下:

使用 operator new 初始化锁变量的最佳位置在哪里?使用 operator delete 完成全局变量的最佳位置在哪里?应该是 WinMain 方法吗?访问锁变量的类之一的构造函数?还是代码中的其他地方?

0 投票
0 回答
406 浏览

delphi - 透明度和运行时主题

当为整个项目禁用运行时主题时,将使用黑色背景绘制透明图像。禁用运行时主题时是否可以在按钮上绘制透明图像?我使用的按钮来自 TMS 组件包,它的类名是TAdvToolButton. 我需要禁用主题,因为我想完全控制应用程序的外观。这是一个重要的要求。请尝试解释透明度和主题之间的联系,因为我看不到它。我认为这是两个不同的东西。

0 投票
2 回答
3273 浏览

c++builder - 在borland c ++ builder中的表单之间传输数据

我在 c++ builder 中设计了两种形式:

  • 主函数
  • 选择名称

在 TfrmMain 类中,我有一个名为 btnNext 的按钮。单击 btnNext 时,下面的代码将运行并创建新的 TfrmChooseName。

同样在 TfrmMain 我有名为 txtInput 的 TEdit 控件。
在 TfrmChooseName 的构造函数中,我想获取 txtInput 的文本并将其设置为表单的标题,但发生访问波动错误!
我也让这两个班级成为朋友!

0 投票
2 回答
1626 浏览

c++ - 在 C++ builder 中从 UnicodeString 传输的 AnsiString 和 AnsiString 的区别

我正在使用 C++ Builder XE3,但我遇到了 AnsiString 的一个奇怪问题。

看看下面的代码

出乎我的意料,它第一次运行良好,但第二次抛出“格式错误”异常。即使我只是用代码 2 调用了一次 funcA,问题仍然存在。

因为当我在 temp1 或 temp2 中 ShowMessage 时没有区别。我完全不明白为什么两次通话给了我不同的结果。

funcA 来自第三个库,代码有点复杂。所以在我追踪这个库的代码之前,我想我应该知道 Code1 和 Code2 有什么区别。

谢谢。

0 投票
1 回答
1521 浏览

c++ - C++ 生成器异常 - StackTrace 为空?

我想获取堆栈跟踪但它总是空的?

使用 C++ Builder XE2。

编辑:此代码在 TForm1::Button1Click 上执行。

0 投票
1 回答
558 浏览

c++ - 使用多个 TClientSocket 实例导致 Windows 句柄泄漏的 C++ 应用程序

TClientSocket我在使用 Borland/Embarcadero组件时遇到了明显的手柄泄漏。我有一个创建多个TThread实例的应用程序,每个实例TClientSocket动态创建一个对象,连接到它的目标发送一些消息,然后被删除。然后TThread删除实例(使用FreeOnTerminate = true)设置。我知道这效率低下,但它完美地满足了应用程序的需求——TThread能够同时存在的最大实例数限制为 32。我看到的问题是我可以看到一个明显的 windows 句柄泄漏问题通过任务管理器。为了隔离问题,我在单线程意义上应用了相同的问题,只是动态创建了一个TClientSocket对象并在主 VCL 线程中的单个循环内完成后再次删除它。这表现出相同的手柄泄漏问题。我知道该组件已被弃用,并且我知道我正在做的事情效率低下,但我不明白为什么会有句柄泄漏。在删除对象之前是否需要对对象执行任何操作TClientSocket以消除此句柄泄漏,或者这是组件中的错误?我在非阻塞模式下使用套接字并将事件处理程序分配给OnConnect OnDisconnectOnSocketError

0 投票
2 回答
2819 浏览

c++ - C++ builder滚动框组件响应鼠标滚轮

我一直在寻找使鼠标滚轮与滚动框组件一起使用的选项,到目前为止我得到了这个

到目前为止,它可以工作,但滚动速度非常慢。有什么方法可以让它滚动得更快,或者在 c++ builder 中处理滚动的更好方法吗?

0 投票
2 回答
274 浏览

dialog - 从资源实现对话框

我目前正在尝试将应用程序从 owl 移植到 vcl。

在我的旧项目文件中,我能够加载类似的对话框

TBatchAcDialog(TWindow* parent) : TAPDialog(parent, BATCH_DIALOG)

但是,使用 TTaskDialog 代替它不支持第二个参数。

我为用户界面设计者找到了一个解释,当右键单击菜单时,您可以从 rc 文件加载第一个声明的菜单。

但是,我真的不知道如何在此 IDE 中将这些对话框加载为对话框并将它们再次链接到我的类。

你们中有人知道这一点,或者可以将我链接到关于类似问题的文章吗?尽管实施 rc-dialogs 对我来说似乎是一个常见问题,但我似乎未能找到合适的解决方案。