小编WeG*_*ars的帖子

Delphi XE占用一个完整的核心(100%的CPU利用率)

我的Delphi开始使CPU过热.一旦我开始使用Delphi,它就会为自己带来一个完整的核心,冷却器开始真正起作用.有什么办法可以解决这个问题吗?

我知道Stack Overflow上的一些人会开始释放热量,如果我一起使用'Delphi'和'bug'这两个词,但这是一个非常讨厌的bug,因为它会浪费很多能量(特别是在电池上时)由于过热会使计算机过早老化.


更新:

仅当活动选项卡是项目(dproj)文件时,才会出现此问题.一旦切换到另一个文件(pas),CPU就会回到0%-1%.它发生在任何dproj文件中,但仅当IDE在屏幕上可见时才会发生(非最小化到任务栏).所以这显然是一个渲染错误.


更新:

看起来Warren P找到了一种产生类似bug的方法.看他的回答.


更新:

我已经看到问题也出现在一个非常大的PAS单元但是在我让Delphi IDE窗口在后台(未使用)3-5分钟后出现最大CPU利用率.我可以通过最小化窗口到任务栏或切换到另一个IDE选项卡来解决它.

delphi delphi-xe delphi-ide

2
推荐指数
1
解决办法
2105
查看次数

德尔福XE - 所有蓝点都向上移动一行

从昨天开始,源代码中的所有蓝点(编译行)都向上移动了一行.因此,第一个点从'var'开始而不是'begin',最后一个点是在函数的最后'end'之前的一行.

我删除了除DPR,PAS,DFM和DPRJ之外的所有文件(从DCU开始)并重新编译.但是这些点仍在转移.我怎样才能解决这个问题?它使步骤=逐步调试几乎不可能.

delphi delphi-xe

2
推荐指数
1
解决办法
1211
查看次数

为什么释放坏对象指针抛出EPrivilege而不是EAccessViolation?

EPrivilege - Privileged instruction当我执行此程序而不是Access Violation?时,为什么会得到" " ?

{$Warnings OFF}
procedure TFrmMyTest.mnuCrashMeClick(Sender: TObject);
var t: TStringList;
begin
 FreeAndNil(t);
end;
{$Warnings ON}
Run Code Online (Sandbox Code Playgroud)

我知道我试图释放一个随机指向内存的对象.但我希望获得访问冲突而不是"特权指令".

(不要担心我不打算在真实程序中使用上面的代码.)

delphi access-violation delphi-xe

2
推荐指数
1
解决办法
630
查看次数

如何覆盖TIniFile.Create?

如何覆盖TIniFile.Create构造函数?

此代码无效,因为Create是静态的:

  TMyIniFile = class(TIniFile)
   protected
   public
     constructor Create  (CONST AppName: string); override;  <------ Error 'Cannot override a non-virtual method' 
   end;
Run Code Online (Sandbox Code Playgroud)

delphi

2
推荐指数
1
解决办法
321
查看次数

Windows.GetRValue接受红衣主教,但TColor是整数

我需要将颜色传递给接受红衣主教的GetRValue.但是,TColor是整数,有时会出现范围检查错误.如果是负面,我应该将我的颜色修剪为0吗?

delphi

2
推荐指数
1
解决办法
2326
查看次数

E2099转换或算术运算溢出

我想将int64与这样的变量进行比较:

const GB=1073741824;
if DiskFile.Size< 1*GB then 
Run Code Online (Sandbox Code Playgroud)

它适用1但不适用3:

if DiskFile.Size< 3*GB then 
Run Code Online (Sandbox Code Playgroud)

这篇文章(Strange Delphi整数乘法行为)解释了原因.我同意这个解释.2*GB的结果不能适合'整数'.我不明白为什么编译器选择整数而不是int64?如下:

if DiskFile.Size< 3073741824 then      <--------- almost 3GB
Run Code Online (Sandbox Code Playgroud)

这样可行.


有没有办法用3*GB样式编写最后一行代码(使用常量)但是没有为1GB,2GB,3GB,4GB等定义新的常量?

delphi

2
推荐指数
1
解决办法
950
查看次数

转换到Windows后,C程序显示%zu

我通过Mingw在Windows上编写了一个linux程序.但是,程序的输出在Windows上看起来与在Linux上不同.

例如,在Windows上输出是这样的(我得到'zu'而不是实数):

Approximated minimal memory consumption:
Sequence        : zuM
Buffer          : 1 X zuM = zuM
Table           : 1 X zuM = zuM
Miscellaneous   : zuM
Total           : zuM
Run Code Online (Sandbox Code Playgroud)

在Linux上,原始程序编译(没有Mingw)警告.在Windows上,在Mingw下,它编译为零警告.

有什么我应该知道的吗?
Mingw是否提供100%的兼容性,或者我必须修改程序才能在Win上运行?

我不知道在哪个方向前进.我应该在哪里开始尝试修复程序?
你认为我有更好的机会与Cygwin?


更新:
维基百科提到:"缺乏对C99的支持导致了移植问题,特别是涉及printf样式转换说明符的问题".
这是我碰到头的事吗?

更新:
我的mingw版本是:

MINGWBASEDIR=C:\MinGW
gcc version 4.8.1 (GCC)
gcc version 4.8.1 (GCC)
GNU gdb (GDB) 7.6.1
GNU ld (GNU Binutils) 2.24
GNU windres (GNU Binutils) 2.24
GNU dlltool (GNU Binutils) 2.24
GNU Make 3.82.90
#define __MINGW32_VERSION           3.20
#define __W32API_VERSION 3.17
Run Code Online (Sandbox Code Playgroud)

(我使用此代码获取版本:

@echo off
REM …
Run Code Online (Sandbox Code Playgroud)

linux windows cygwin mingw g++

2
推荐指数
1
解决办法
803
查看次数

使用Chromium Embedded时如何解决此内存泄漏?

Chromium Embedded的GuiDemo代码(https://code.google.com/p/delphichromiumembedded/)正在泄漏少量内存。数量不多,但是每次停止应用程序时都会从FastMM收到该消息非常烦人。我猜泄漏是在Chromium接口中。该单元具有“初始化”部分:

INITIALIZATION
 CefCache := 'cache';
 CefRegisterCustomSchemes := CefOnRegisterCustomSchemes;
 CefRegisterSchemeHandlerFactory('dcef', '', True, TFileScheme);
Run Code Online (Sandbox Code Playgroud)

日志是这样的:

A memory block has been leaked. The size is: 20

This block was allocated by thread 0x1674, and the stack trace (return addresses) at the time was:
40455E 
4050A7 
409C1D 
405622 
4050DC 
4F0D7A 
406598 
406604 
40A6C3 
4F0E28 
764CEE1C [BaseThreadInitThunk]

The block is currently used for an object of class: main$174$ActRec
The allocation number is: 323

--------------------------------2014/10/5 17:11:33--------------------------------
This application has leaked memory. The small …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe

2
推荐指数
1
解决办法
492
查看次数

错误:无法在BPL项目选项中编辑提示/警告

我利用从Embarcadero通过电子邮件收到的(时间有限的)升级优惠,并升级到Delphi XE7.我喜欢.像这样的好版本出现7年:)

但我有一个问题:我不知道如何沉默一些警告.例如'最终结束后的W1011文本'."项目选项"框不同.所有这些可编辑的值都消失了.相反,我有3个条目,如'Value from:Debug configuration - All platforms'.

我在哪里可以配置全局"调试配置 - 所有平台"的事情?

在此输入图像描述

delphi delphi-xe7

2
推荐指数
1
解决办法
233
查看次数

delphi XE7与windows 10兼容吗?

有人知道delphi xe7是否与windows 10兼容?Embarcadero说XE8是兼容的.但对XE7一无所知.

delphi delphi-xe7 windows-10

2
推荐指数
1
解决办法
9225
查看次数