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

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 投票
0 回答
95 浏览

c++builder-xe - C++ Builder XE 调试器如何影响我的代码?

使用 C++ builder XE

我在带有 2 个面板的表单上使用 TStatusBar。第一个面板只是文本。第二个设置为 OwnerDraw 并应指示一个红色或绿色面板,显示是否连接了 comport。这是从表单上的 TTimer 更新的,间隔为 500 毫秒。似乎发生的事情是,当我从 IDE(使用调试器)中运行程序时,它可以正常工作,但是当我从目标文件夹中的 .exe 文件运行它时,或者从没有调试器的 IDE 中运行它时,它不更新状态栏。

这真的很烦人,因为只要我在调试器下运行它来调试它,它就不会出错!当我不使用调试器时,似乎没有调用 OnDrawPanel 事件处理程序。任何人有任何想法为什么,或者解决这个问题?

0 投票
1 回答
1291 浏览

delphi - 编写 C++ Builder/Delphi 组件并将二进制属性保存到 DFM 文件

我编写了一个 C++ 构建器组件来显示 SVG 文件对它们执行一些操作。

现在,我发布了一个名为 SvgFile (UnicodeString) 的属性,可以在 IDE 中使用 SVG 文件的文件名对其进行初始化。这工作正常。此属性保存在 DFM 文件中,并且可以从中重新加载。

但是我必须在应用程序中提供 SVG 文件,所以我想将 SVG 保存到 DFM 文件中,因为它是使用 TImage 组件完成的。

我想我必须编写一个 TPropertyEditor 和一个 TPersistent 类,但我不知道该怎么做。

有人可以帮我这样做吗?

编辑 2013/01/17:这是一个解决方案http://www.informit.com/articles/article.aspx?p=28278&seqNum=5

谢谢你的帮助。

0 投票
1 回答
85 浏览

c++builder-xe - 如何在运行时替换 TDateTime 类型的 Day

我有名为 dtBegin 的 TDateTime 变量。dtBegin 包含值“7/3/2000”。我只需要将 Day 替换为“2”即可将值更改为“2/3/2000”。

这该怎么做?有人建议我在 C++ Builder XE 中使用 RecodeDay() 方法,但该方法不起作用。我把 dtBegin 放在方法上:

但是该方法没有返回我想要的值。

有什么方法可以做到这一点吗?请帮帮我。提前致谢。

0 投票
0 回答
334 浏览

mysql - 我无法直接从 C++ Builder XE 应用程序更新 MySQL 数据库

我有一个用 C++ Builder XE 语言编写的名为 SpeZet 的数据库应用程序。我使用 MySQL 远程服务器数据库。

有时我直接从 SpeZet 将数据插入到远程 MySQL 服务器上的“tbtime”表中,它可以工作,但是当我尝试直接从 SpeZet 更新记录时,我收到如下任何错误消息:

项目 SpeZet.exe 引发异常类 TDBXError,消息“表”SpeZet.tbtime 不存在

而 tbtime 表确实存在于数据库中。

当我尝试继续该过程时,我再次收到如下错误消息:

Project SpeZet.exe 引发异常类 EDatabaseError 并带有消息“无法找到记录。没有指定键'

任何人都可以告诉我这里有什么问题吗?

0 投票
2 回答
2643 浏览

delphi - 如何在 C++ Builder 中使用 Delphi "in" 运算符

我是一个新手程序员。我需要in像这样在 C++ Builder XE 中使用 Delphi 的运算符:

如何在 C++ Builder 中做到这一点?

提前致谢。

0 投票
1 回答
1271 浏览

delphi - 如何在 C++ Builder 中使用 Delphi Inc() 和 Dec() 过程

我是一个新手程序员。我需要像这样在 C++ Builder XE 中使用 DelphiInc()和程序:Dec()

任何人都可以帮助我如何做到这一点?

0 投票
0 回答
2770 浏览

delphi - 如何自动调整 DBGrid 列宽

我一直在尝试将此 Delphi 代码与 C++ Builder XE 一起使用。我手动将语言转换为 C++ Builder 语言。

此过程运行正常。当我尝试最大化保存 DBGrid 的表单时,此过程成功地根据网格宽度拆分列宽度。但是,如果我尝试使用表单右侧或左侧的鼠标控制来最小化表单宽度,则此过程不会将列宽调整为每列上值的长度或标签的长度。

有什么办法可以解决吗?或者有人有其他程序来解决这样的问题吗?

编辑:好的,这是代码。我已经手动将上面的代码转换成这个代码:

提前致谢。

0 投票
1 回答
3350 浏览

dll - 将 Embarcadero C++ Builder XE3 DLL 导入 Embarcadero C++ Builder XE3

我尝试在 Embarcadero C++ Builder XE3 中创建一个 DLL,并在同一环境中的测试项目中使用它。

我以一个教程为例,该教程的代码对我来说效果不佳(!):http ://docwiki.embarcadero.com/RADStudio/XE3/en/Tutorial:_Using_Dynamic_Linked_Libraries_in_C%2B%2BBuilder_Applications

这是我的 DLL 的内容:

BaseAuth.h 文件:

Auth.h 文件:

Auth.cpp 文件:

和 File1.cpp :

现在在测试应用程序中我有:

  • 相同的 BaseAuth.h 文件

  • 带有 Button 的表单:

Test_DLLAuthOrga.h:

Test_DLLAuthOrga.cpp:

结果是:

指针 mpAuth 有一个地址。

但是它的方法没有地址,当我调用诸如“void TestMessage()”之类的简单方法时,它会引发访问冲突。

=> 首先似乎是字符串兼容性的问题(但在“C++ Builder XE3”和“C++ Builder XE3”之间,我希望使用相同的字符串格式?!):使用 Unicode Delphi 调用 DLL 时出错

=> 我发现了一个类似的问题,但是 C++ DLL 进入 Delphi,而不是 C++ DLL 进入 C++ ...:在 Delphi 应用程序中调用 C++ DLL

=> 我尝试使用“HMODULE”而不是“HINSTANCE load;” : 同样的结果。

=>我尝试使用没有成功

代替 :

=>我还尝试用“__cdecl”或“”(删除)替换“__stdcall”:库加载但GetProcAdress返回NULL。

=> 在尝试调用 DLL 的方法“TestMessage()”时我做错了什么?

0 投票
3 回答
4040 浏览

c++builder - Firemonkey:在 Embarcadero C++ Builder XE3 上使用 TGrid

我正在尝试构建一个从数据库读取数据并使用 Firemonkey 中的 TGrid 将其显示为表的工具。我需要使用不同类型的列,例如 TCheckColumn 和 TPopupColumn,但找不到任何关于如何在 C++ Builder 中使用它们的好的指南或示例。

无论如何,我设法了解了 TStringColumn、TProgressColumn 的用法,用于在 TGrid 的事件 onGetValue 中设置单元格的值。

你们中有人知道如何为 TCheckColumn、TImageColumn 和 TPopupColumn 类型的列设置值吗?

谢谢丹尼尔

- -更新 - -

我设法使用了 TProgressColumn。这就是我在表单的构造函数中所做的:

这是 Grid1GetValue 方法:

- -更新 - -

如果我使用 OnSetValue 方法保存列的值

然后用 OnGetValue 方法设置它:

在我单击一个复选框后,所有其他复选框都会更改状态。所以组件可以正常工作......现在的重点是如何以正确的方式将 Value 设置为 true 或 false。

0 投票
1 回答
1027 浏览

ide - IDE 生成的 USEFORM 宏调用更改它们的顺序

我们有一个 C++Builder XE 项目(VCL 表单应用程序),其中包含几十个表单和单元。每当添加、删除或重命名属于项目的文件时,IDE 应该做两件事:

  1. 如果受影响的单元是窗体或框架,则会在项目源文件 (ProjectName.cpp) 中添加或更改对 USEFORM 宏的调用
  2. 添加或更改项目文件 (ProjectName.cbproj) 中的 CppCompile 元素

但是,IDE 不仅会进行必要的更改,还会对一些现有的 USEFORM 和 CppCompile 记录进行洗牌,即使它们不受更改的影响。如果我添加一个单元(cpp 和头文件),则即使不需要对项目源进行任何更改,也会对 USEFORM 进行改组,仅对 cbproj 文件进行更改。

我没有看到新订单如何形成的具体模式。如果我编辑或重命名单个单元,大约一半的 USEFORM 似乎改变了位置,只有几个或没有 CppCompile 记录。如果在两台不同的机器上对项目的副本进行更改,大多数更改似乎相似,但不是全部。这表明重新排序不是随机的。

当使用 Subversion 合并更改时,该行为会导致问题,因为它强制手动解决更改顺序造成的冲突。

所以问题是:什么可能导致上述行为以及如何摆脱它?