AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EOutOfResources bei resize

Ein Thema von ebber · begonnen am 25. Aug 2007 · letzter Beitrag vom 25. Aug 2007
Antwort Antwort
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#1

EOutOfResources bei resize

  Alt 25. Aug 2007, 17:41
Hallo

wenn ich meine Form resize dann kommt dieser Fehler :

Delphi-Quellcode:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Lampen.exe ist eine Exception der Klasse EOutOfResources mit der Meldung 'Für diesen Befehl ist nicht genügend Speicher verfügbar.
' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

Delphi-Quellcode:

procedure TForm11.FormResize(Sender: TObject);
begin

      TimerRefresh.Enabled := false;

   CircleScope.Free;

        CircleScope := TCircleScope.Create(PaintFrame.Width, PaintFrame.Height);
   CircleScope.Pen:= $00804000;
   CircleScope.Offset := TrBOffset.Position;
   CircleScope.Radius := TrBRadius.Position;

      TimerRefresh.Enabled := true;

end;
Hier soll das alte CircleScope zerstört und ein neues erstellt werden. Beim jedem resize braucht das ding ca. 50MB mehr Speicher. Da ist der bald voll. Zerstöre ich das irgendwie nicht richtig ?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 18:00
Ich vermute TCircleScope hat interne Speicherlücken.

Häng FastMM4 und lass dir die Speicherlücken ausgeben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#3

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 18:10
anscheinend gibt es seinen speicher nicht anständig frei. Schau dir mal die Destruktoren an.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 18:18
Warum muss das Objekt CircleScope überhaupt beim Resizen zerstört & neu erstellt werden? Reicht nicht eine Parameterübergabe der geänderten Größe an CircleScope?
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 19:12
heir einmal der constructor dieser klasse:

Delphi-Quellcode:
     
      Constructor TCircleScope.Create(Width, Height : Integer);
      begin
        VisBuff := TBitmap.Create;
        BackBmp := TBitmap.Create;

          VisBuff.Width := Width;
          VisBuff.Height := Height;
          BackBmp.Width := Width;
          BackBmp.Height := Height;

          BkgColor := clBlack;
          ScopeRad := 30;
          ScopeOff := 30;
          PenColor := clWhite;
          DrawType := 0;
          DrawRes := 2;
          FrmClear := True;
          UseBkg := False;
      end;
der desctructor ist leider nicht in der unit aufzufinden?!
wie doof ist das denn?
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.294 Beiträge
 
Delphi 12 Athens
 
#6

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 19:34
Zitat von computer-glossar.de:
heir einmal der constructor dieser klasse:

Delphi-Quellcode:
     
      Constructor TCircleScope.Create(Width, Height : Integer);
      begin
        VisBuff := TBitmap.Create;
        BackBmp := TBitmap.Create;

      end;
der desctructor ist leider nicht in der unit aufzufinden?!
wie doof ist das denn?
Es werden zwei Bitmap erzeugt. Da der Destructor nicht vorhanden ist, werden diese zwei Bitmap nicht freigegeben. Lege den Destructor für TCircleScope an und gib die beiden Bitmap frei.


Delphi-Quellcode:
     
Destructor TCircleScope.destroy;
  begin
    VisBuff.free
    BackBmp.free;
    inherited
  end;
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#7

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 19:50
Danke. Jetzt funktionierts.
Respekt, wie gleich jemand die Klasse gefunden hat.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#8

Re: EOutOfResources bei resize

  Alt 25. Aug 2007, 20:24
google is your best friend
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz