问题标签 [c++builder-6]
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.
serial-port - VaComm 组件不会触发 OnRxChar 事件
VaComm 组件通过 COM 端口封装与外部设备的通信。我的程序正在使用以下代码与测量设备进行通信:
我设置了 OnRxChar 事件处理程序(通过表单设计器),如下所示:
问题是即使接收到数据也不会触发此事件(可以通过在无限循环中调用 TVaComm::ReadText 方法来检查)。向连接的设备发送两个命令也成功(可以在设备显示屏上看到)。当输入缓冲区中有一些数据时,除了打开 COM 端口来接收 OnRxChar 事件之外还需要什么?我也不明白兄弟组件 TVaBuffer 的目的是什么?目前我没有使用它,并且可以通过方法 ReadText 接收数据(如我上面所写)。
printf - 为什么空字符串转换为“(null)”?
我有以下代码示例:
很简单不是吗?字符串str用作图形中显示的数值的描述。对于 0.05 V 的值,说“电压为 50 mV”更为全面和直观。这是通过在这种情况下使用适当的前缀“m”来确保的。对于值范围 <1;1000) 不需要添加任何前缀。例如,我们可以说“这个元件上的电压是 50 伏”,这是完全可以理解的。当前缀为空字符串时,我遇到库函数 printf 不断添加字符串“(null)”的问题,例如:
“电压 [(null)V]”
在使用 Microsoft Visual Studio 之前,我从未见过这种行为。可以以某种方式避免这种行为吗?
c++builder - 如何在 OnDrawColumnCell 事件中获取行号?
这就是我为 TDBGrid 组件绘制例程的样子。我正在根据一些规则替换数据库中的值:
但是我不知道如何判断当前正在渲染哪一行?如果没有这些知识,我将无法获得用于显示的数据。
c++builder - 禁用 TDBGrid 上的编辑选项不起作用
在运行时动态创建 TDBGrid 组件时,我不能禁止用户编辑单元格中的值。这就是我试图完成这种行为的方式:
在表单设计器中禁用dgEditing时,一切正常。我找不到这两种情况之间的区别。我应该怎么做才能禁用 DBGrid 单元格的编辑?
delphi - 如何删除页面控件与其标签页之间的边距?
我注意到 TPageControl 中 TTabSheet 的 Left 属性始终为 4。因此,TPageControl 边框和 TTabSheet 中的控件之间始终至少有 4 像素的边距。我想将此边距设置为 0(至少对于左边框),但我无法将 TTabSheet.Left 设置为 0;它总是自动恢复到 4 像素。
我试图在 OnResize 中为 TTabSheet 和 TTabControl 设置 Left 属性,但它没有帮助。
如何将此边距减少到 0(至少对于左边框)?我正在使用 C++ Builder 6。
boost - 使用 Borland C++ Builder 提升
有人在 Borland C++ Builder 中使用过 Boost 库吗?是否有任何在线资源可以在 Borland C++ Builder 中构建和使用它?boost 文档对具体任务非常简短。
非常感谢!
c++ - 如何在 borland C++ builder 6 中制作 .exe 文件
我需要帮助才能使我的应用程序在具有自己的安装程序的另一台计算机上运行。我必须包含哪些文件以及如何制作它?
c++ - 如何处理 JPEG #41 错误
我在 C++ Builder6 中有一个项目。有一个 OpenDialog,我可以在其中将图像上传到项目中。我希望我的项目是安全的,因为它只接受 .jpg 或 .bmp 图像,所以我决定做出限制。就我而言,我可以通过将流阅读器设置为第 4 位来识别 .jpg 文件。如果我在这里找到“JFIF”,它将是 .jpeg 文件。等等。这是我的代码
但不幸的是,当我将一个带有重命名扩展名的文本文件放在这里时,该代码引发了关于 JPEG 错误 #41 的异常。
所以我的想法行不通。整个问题是:我可以让我的程序在不使用 try-catch 方法的情况下返回我的错误消息吗?
顺便说一句,我理解为什么会引发异常,因为我的 jpeg 文件是空的。但我想使用我自己的系统来处理它,而不是标准异常。
c++ - 构造函数中的神秘堆栈溢出
这是我的程序使用的类层次结构:
TForm_Upgrade_Database 的构造函数如下所示:
__fastcall TForm_Upgrade_Database::TForm_Upgrade_Database(TComponent* Owner, int latest_version) : TForm(Owner) { }
尝试创建公式实例后
我的程序抛出 EStackOverflow 异常
我停止了程序并在 TForm_Upgrade_Database 构造函数中使用断点再次运行它。几个步骤后调用堆栈看起来像这样:
TCustomForm 构造函数如何一直试图调用其后代的构造函数???
最小测试用例:
so_project.cpp:
f_form.cpp:
f_form.h:
migration - C++ Builder XE 无法从 BCB6 成功转换项目
我正在尝试将旧的 BCB6 项目转换为 C++ Builder XE 项目。开发环境版本如下:
Embarcadero C++ Builder XE 版本 15.0.3953.35171
第一步是创建空白的新项目(文件 -> 新建 -> VCL Forms Application - C++ Builder)。之后,我将旧项目中的所有文件和所有表单添加到项目中,并删除了自动创建的空白表单。第二步是在必要时将AnsiString对象转换为UnicodeString对象。然后我尝试构建项目。编译阶段运行没有错误。但我现在遇到链接器错误(在 BCB6 中一切正常):
如何解决这些错误?我做错了什么吗?TChart 是 BCB6 和 C++ Builder XE 中的标准组件。