Could anyone tell me, why I keep getting the following errors?
Background:
The project has 320 Embedded Forms.
The projects search path has 205 folders, at a length of just over 11,000 chars.
If I remark out just 1 of the embedded form units, then it compiles without an error.
IMAGE #1 - From Delphi IDE
enter image description here
IMAGE #2 - From DCC32.EXE
enter image description here
Here is the unit I use for my embedded forms
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.
- 
 can you suppress the problem by removing any form?David Heffernan– David Heffernan2011年09月26日 06:35:40 +00:00Commented Sep 26, 2011 at 6:35
- 
 Yes, It doesn't care what form I remove.eyeClaxton– eyeClaxton2011年09月26日 06:39:02 +00:00Commented Sep 26, 2011 at 6:39
- 
 you could try using a PE editor to increase stack size of IDE or dcc32. But make backups first! Editbin should do this.David Heffernan– David Heffernan2011年09月26日 06:53:23 +00:00Commented Sep 26, 2011 at 6:53
- 
 @eyeClaxton - a wild shot but you could try removing unused units from your uses clause. CnPack has a wizard to do this automatically for you.Lieven Keersmaekers– Lieven Keersmaekers2011年09月26日 06:55:51 +00:00Commented Sep 26, 2011 at 6:55
- 
 @Lieven - No unused units to remove I always use Icarus.eyeClaxton– eyeClaxton2011年09月26日 07:01:04 +00:00Commented Sep 26, 2011 at 7:01
2 Answers 2
You could try using a PE editor to increase the stack size of IDE or dcc32. But make backups first! Editbin should do the trick.
Comments
Try to change these values:
Project->Options->Linker->Memory sizes
Min stack size as hex value
Max stack size as hex value