2

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.
asked Sep 26, 2011 at 0:58
14
  • can you suppress the problem by removing any form? Commented Sep 26, 2011 at 6:35
  • Yes, It doesn't care what form I remove. Commented 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. Commented 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. Commented Sep 26, 2011 at 6:55
  • @Lieven - No unused units to remove I always use Icarus. Commented Sep 26, 2011 at 7:01

2 Answers 2

5

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.

answered Sep 26, 2011 at 17:43
Sign up to request clarification or add additional context in comments.

Comments

0

Try to change these values:

Project->Options->Linker->Memory sizes

Min stack size as hex value

Max stack size as hex value

answered Sep 27, 2011 at 19:53

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.