Board index » delphi » HELP: EOutOfResources-problem

HELP: EOutOfResources-problem

Hi,

I have the following problem which I can not solve.

I have a MDI-database application with some 40 tables and even more
child forms.  All child forms are created at run-time, but they can all
be visible at the same time (but never more than one instance of them).

The problem started with my biggest form.  This is a form with some 20
DBLookupCombo's on it, placed on a TabbedNotebook (5 pages).  When I
click on 3 pages (no matter which ones), all works well.  Clicking on a
fourth page gives me an

"Project raised exception class EOutOfResources with message 'Error
creating window'. Proces stopped...."

error.  I have the same problem when I open several child forms at the
same time.  
I found out that when I remove some DBLookupCombo's from my form, I
don't have the problem any more.
Furthermore, when I make an other project with the problem form as only
form in the project (it is no longer a MDI-child then of course), I
never have the error message.

It seems that I am asking too much from Delphi - or is it Windows again
:-) .  Perhaps I need to modify some parameters somewhere.

I use Delphi1 in a Windows95 environment on a Pentium90 machine with
49MB Ram.

Is there a solution to this problem?

Many, many, many thanks in advance,

Peter H. Peeters
phpee...@pop.vub.ac.be

 

Re:HELP: EOutOfResources-problem


Peter H. Peeters <phpee...@pop.vub.ac.be> wrote in article
<33D8D9DE.3...@pop.vub.ac.be>...

Release some of the handles which you are hogging on the various pages.The
code below should do it.

Ken
k...@kpc.nildram.co.uk

interface

uses.......

type
    Type TSurfaceWin = class(TWinControl);

procedure TForm1.Tab1Change(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
begin
{LockWindowUpdate prevents any drawing in a given window}
LockWindowUpdate(handle);
TSurfaceWin(Tabbednotebook1.pages.objects[tabbednotebook1.pageindex]).Destro
yHandle;
{Release the Lock on the Form so any Form drawing can work}
LockWindowUpdate(0);

end

Other Threads