Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Rätselhafte EInvalidGraphicOperation (https://www.delphipraxis.net/55261-raetselhafte-einvalidgraphicoperation.html)

profmaster 18. Okt 2005 19:47


Rätselhafte EInvalidGraphicOperation
 
Hallo!

Wie die Themenüberschrift schon sagt, kann ich mir die genannte Exception nicht erklären.

Hier ist die Methode, in der sie auftritt:

Delphi-Quellcode:
constructor TScreen64. Create( YourCanvas: TCanvas; xres,yres: Longint;pixf:TPixelFormat);
begin
  WasAssigned:= False;
  gCanvas:= YourCanvas;
  bmWidth:= xres;
  bmHeight:=yres;

  bmBitsPixel:= pixf;
  bmBpp:= (bmBitsPixel + 7) shr 3;

  BackBuffer:= TBitmap. Create;  {new back buffer}  //Bitmap wird ordnungsgemäß erzeugt
  BackBuffer. Width:= bmWidth;
  BackBuffer. Height:= bmHeight; //Der integrierte Debugger zegt mir den Wert 97
                                  //Das kann nicht zu groß sein

  case bmBitsPixel of
    pf8bit: BackBuffer. PixelFormat:= Graphics.pf8bit;
    pf15bit: BackBuffer. PixelFormat:= Graphics.pf15bit;
    pf16bit: BackBuffer. PixelFormat:= Graphics.pf16bit;
    pf32bit: BackBuffer. PixelFormat:= Graphics.pf32bit;
    else
      raise exception.Create('Unsupported pixel format!');
  end;
//------------------------------------------------------------------------------
  bmBits:= BackBuffer.ScanLine[ BackBuffer.Height]; //Hier kommt die Exception
//------------------------------------------------------------------------------
  Longint( bmBits):= Longint( bmBits) + bmBpp* (BackBuffer.width); {seek to end of DIB}
  SetupBits;
  SetClipper();
end;
Kann mir jemand helfen. Warum läuft dieser Code nicht. TBitmaap ist die Klasse aus der Graphics Unit.

Ratlose Grüße von

profmaster

marabu 18. Okt 2005 19:59

Re: Rätselhafte EInvalidGraphicOperation
 
Der Index für ScanLine läuft wahrscheinlich von 0 bis Pred(Height)...

Grüße vom marabu

profmaster 18. Okt 2005 21:21

Re: Rätselhafte EInvalidGraphicOperation
 
Hallo marabu!


Zitat:

Der Index für ScanLine läuft wahrscheinlich von 0 bis Pred(Height)...
Das war auch die Ursache für die Exception. Kleine Ursache große Wirkung.
Hab das an meheren Stellen, die mir der Bebugger noch gezeigt hat, korrigieren müssen.

Jetzt läuft das Programm. Danke für die schnelle Hilfe sagt

profmaster


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 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