Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi EOutOfResources - Systemressourcen erschöpft. Warum??? (https://www.delphipraxis.net/120670-eoutofresources-systemressourcen-erschoepft-warum.html)

romber 15. Sep 2008 00:17


EOutOfResources - Systemressourcen erschöpft. Warum???
 
Beim Versuch, generiertes Screenshot in eine Stream zu speichern bekomme ich ständig die o.g. Fehlermeldung. Warum? Was ist falsch?

Hier ist mein Code:

Delphi-Quellcode:
var
  HDdc: HDC;
  Bild: TBitmap;
  CopyWidth: integer;
  CopyHeight: integer;
  fStream: TMemoryStream;
begin
  fStream := TMemoryStream.Create;
  repeat
    HDdc := GetDC(0);
    CopyWidth := Screen.Width;
    CopyHeight := Screen.Height;
    Bild := TBitmap.Create;
    Bild.PixelFormat := pf24bit;
    Bild.SetSize(CopyWidth, CopyHeight);
    BitBlt(Bild.Canvas.Handle, 0, 0, CopyWidth, CopyHeight, HDdc, 0, 0, SRCCOPY);
    ReleaseDC(0, HDdc);
    fStream.Clear;
    fStream.Position := 0;
    Bild.SaveToStream(fStream);  //  <--- An dieser Stelle kommt es zu der Fehlermeldung. Wenn ich die Zeile auskommentiere, passiert nichts.
    Bild.Free;
  until cStop > 0;
  fStream.Free;

omata 15. Sep 2008 00:22

Re: EOutOfResources - Systemressourcen erschöpft. Warum???
 
Welche Delphi-Version benutzt du?

TBitmap.SetSize kennt mein Delphi nicht.

TStream kennt bei mir kein Clear, du erstellst ja auch einen TMemoryStream wieso ist dann die Variable ein TStream?

Was ist SaveToStr, wo kommt das her? Was macht das? Sollte das SaveToStream heissen?

Und was genau macht cStop?

romber 15. Sep 2008 01:34

Re: EOutOfResources - Systemressourcen erschöpft. Warum???
 
Delphi 2007.

Ich habe die Code korrigiert. Aus TStream wurde TMemoryStream. MemoryStream besitzt die Methode Clear.

Waraum bekomme ich diese Fehlermeldung?

WS1976 15. Sep 2008 05:33

Re: EOutOfResources - Systemressourcen erschöpft. Warum???
 
Hallo,

wenn du die Frage dauernd wiederholst ohne uns die Möglichkeit zu geben den Code zu testen kriegst du nie eine Antwort.
Also was ist cstop?

Grüsse
Rainer

romber 15. Sep 2008 07:10

Re: EOutOfResources - Systemressourcen erschöpft. Warum???
 
Sorry, cStop ist einfach eine Integer-Variable, mit der ich die schleife unterbreche, wenn es nötig ist. Mehr nichts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz