Sorry, I've made this post have a little larger width, so that the code would fit right.
I have a problem with handling memory. I have an array of objects, namely TImage. The length of the array is determined by the user, that is 500 by default, or 50 if the parameter -low is entered. When the application starts I begin creating the objects. I have also wrote what messages should appear when an exception is raised. Those messages never appear, so the problem doesn't happen during the creation, but a few seconds AFTER. In the end, I get the following message (this one is from the Delphi compiler): "Project MemTest.exe raised exception class EInvalidPointer with message 'Invalid pointer operation'. Process stopped. Use Step or Run to continue." In my opinion, the problem is that there isn't enough memory. It has to be that, because the only procedure used in the program is the one I've posted at the end of the message. I should probably do something else besides just creating objects, perhaps GetMem or such? Or raise the heap size? Anyway, before I do anything I would like top hear some suggestions from you guys! Gajo code --------> global types: type ObjGroup = array of TImage; global variables: var grp = ObjGroup; procedure Form1.OnCreate --- can also be anything else var i: integer; begin // if the user starts the program with -low, then the array will be of size 50; otherwise 500 if ParamStr(1) = '' then max := 500 else if ParamStr(1) = '-low' then max := 50; try SetLength(grp,max) // if the length is too large an exception will be raised except on Exception do begin if max = 500 then begin MessageBeep(MB_ICONEXCLAMATION); MessageDlg('Your computer is too weak. Try starting with the -low parameter!', mtError,[mbOK], 0); Application.Terminate end else if max = 50 then begin MessageBeep(MB_ICONEXCLAMATION); MessageDlg('Sorry, this will never work...', mtError,[mbOK], 0); Application.Terminate end end end; for i := 0 to max do begin // create an object for every item of the array try grp[i] := TImage.Create(Self); grp[i].Parent := Form1; grp[i].Visible := False; grp[i].Transparent := True; grp[i].Picture := Image1.Picture; grp[i].Width := Image1.Width; grp[i].Height := Image1.Height; except on Exception do MessageDlg('Something is not right.', mtError, [mbOK], 0) end; end; end; end; --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/