【发布时间】:2011-09-26 00:58:14
【问题描述】:
谁能告诉我,为什么我不断收到以下错误?
背景:
该项目有 320 个嵌入式表单。
项目搜索路径有 205 个文件夹,长度刚刚超过 11,000 个字符。
如果我只注释掉 1 个嵌入的表单单元,那么它编译时不会出错。
图像 #1 - 来自 Delphi IDE
图像 #2 - 来自 DCC32.EXE
这是我用于嵌入表单的单位
unit EmbeddedForm;
interface
{$INCLUDE '..\INCLUDE\BUILD.INC'}
uses
Windows, Controls, Messages, Forms;
type
TEmbeddedForm = class(TForm)
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure StopFlicker(var theMessage: TWMEraseBkgnd); message WM_ERASEBKGND;
protected
{ Protected declarations }
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
procedure InitializeForm(); virtual; abstract;
procedure FinalizeForm(); virtual; abstract;
end;
implementation
{$R *.DFM}
procedure TEmbeddedForm.StopFlicker(var theMessage: TWMEraseBkgnd);
begin
theMessage.Result := 1;
end;
procedure TEmbeddedForm.CreateParams(var Params: TCreateParams);
const
ParamStyle = WS_VISIBLE or WS_POPUP or WS_OVERLAPPED or WS_OVERLAPPEDWINDOW;
begin
inherited CreateParams(Params);
Params.ExStyle := (Params.ExStyle and (not WS_EX_WINDOWEDGE)
and (not WS_EX_STATICEDGE) and (not WS_EX_DLGMODALFRAME) and (not WS_EX_CLIENTEDGE));
Params.Style := (Params.Style and (not WS_CAPTION) and (not DS_MODALFRAME)
and (not WS_DLGFRAME) and (not WS_THICKFRAME));
Params.Style := Params.Style and not ParamStyle;
end;
procedure TEmbeddedForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;
procedure TEmbeddedForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
end;
end.
【问题讨论】:
-
你能通过删除任何表单来抑制问题吗?
-
是的,我删除什么表格并不重要。
-
您可以尝试使用 PE 编辑器来增加 IDE 或 dcc32 的堆栈大小。但请先备份! Editbin 应该这样做。
-
@eyeClaxton - 一个狂野的镜头,但您可以尝试从您的使用条款中删除未使用的单位。 CnPack 有一个向导可以自动为您执行此操作。
-
@Lieven - 没有可移除的未使用单位我总是使用 Icarus。
标签: delphi ide delphi-7 stack-overflow