c++ - 如何更改 C++ 构建器中 TMenuItem 的可见性?

标签 c++ c++builder

我正在使用 C++ Builder 开发应用程序。 我想遍历 MainMenu 中的所有 TMenuItems,因为我想更改其中一些的标题。 我使用了这段代码:

 int numAction = MainMenu1->Items->Count;
 for (int i=0;i<numAction;i++)
 {
        TMenuItem* tmpAction = &MainMenu1->Items[i];
        tmpAction->Caption = "Test Caption";
 }

我认为它应该可以工作,但我总是遇到应用程序崩溃的问题。有了这种消息:

Debugger Exception Notification Project Project1.exe raised exception class EAccessViolation with message Access violation at address 501C380E in module vcl120.bpl. Read of address 0000003C.

我们将不胜感激。

最佳答案

TMenu 有一个类型的属性

_property TMenuItem* Items

依次有一个数组类型的属性

__property TMenuItem* Items[int Index]

所以,解决方案是(正如 n.m. 已经注意到的那样)写

TMenuItem* tmpAction = MainMenu1->Items->Items[i];

关于c++ - 如何更改 C++ 构建器中 TMenuItem 的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474801/

相关文章:

c++ - 类函数成员不依赖于类成员

C++ 缺少类型说明符 : syntax error

c++ - 如何隐藏exe或dll中的字符串?

macros - 在编译期间使用自定义消息转到源代码?

c++ - 将修改后的矩阵中的所有数字相加

c++ - 如何为 Code Blocks 13.12 编译 boost 1.55.0 至 win7(32 位)?

c++ - C++中接口(interface)类和实现类的并行继承

delphi - 如何构建数据库以快速访问节点

c++ - 在一行中调用 TDataSet.Locate

android - C++Builder:如何在 Android 应用程序中显示重音?