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

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

c++builder - 如何在 C++Builder 中确定哪个组件具有程序焦点

我正在使用 C++Builder XE4 32 位 VCL 平台。我正在为 Windows 操作系统写作。

我有一个 MainForm,上面有很多组件。当我按下键盘箭头键并OnShortCut触发 Form 的事件时,如何确定哪个组件具有程序焦点?

我有不同的行动,必须根据哪个组件具有焦点而采取。

0 投票
1 回答
458 浏览

c++ - 在 C++ Builder XE4 中搜索内存泄漏

我正在尝试查找并修复我的应用程序中存在的内存泄漏。我正在试用的内存分析工具 - C++ Memory Validator - 显示大约每 5 分钟分配 1,310,706 个字节。这些分配的调用堆栈可以追溯到我认为是用 pascal 编写的 Embarcadero 内存管理器。有问题的功能是:

请注意,变量 MediumBlockPoolSize 是一个常量,它是泄漏的确切大小。

我认为正在发生的事情是,当我的应用程序泄漏内存时,它会分配一些东西,此时我们从可用内存池中请求一个新的内存块(1.3MB),我认为这大约会发生5 分钟。但是,这并不能准确地告诉我泄漏的来源。有什么方法可以更好地查明泄漏源吗?

我已经浏览了代码并确保所有新闻都有删除,并且没有指针被重新分配而不被首先删除等。

下面是分配内存块时的调用树。请注意,如果我在代码中注释掉此调用树,则该块将出现在我的代码中的不同位置,依此类推。

调用树

谢谢。