Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Bereichsüberlauf bei rin bitmap drehen

  Alt 27. Feb 2019, 11:08
Hallo,
ich habe ein Problem und zwar,dass mein programm ein fehler Meldung (Bereichsüberlauf )ausliefert.
Das liegt daran, dass

type TRGBarray = array[0..0] of TRGBQuad; definiert ist und Du dann später hemmunglos einen Index > 0 verwendest:

Delphi-Quellcode:

procedure TFormFoto.rotate90(const Source:TGraphic ; Bmp: TBitmap);
var P : PRGBQuad;
  y, x, h, b: integer;
  Rowout : ^TRGBarray;
  sourcebmp : TBitmap;
begin
  ....
      rowout[x] := p^;

end;
Entweder Du schaltets die Bereichsüberprüfung für diese Methode aus ({$R-}) oder deklarierst den Typ z. B. als

type TRGBarray = array[0..(High(Cardinal) div Sizeof(TRGBQuad))-1] of TRGBQuad; Mit dieser Deklaration darfst Du aber auf keinen Fall eine Variable dieses Typs deklarieren, die würde 4 GByte Speicher belegen! Mti einem Pointer darauf zu arbeiten ist aber kein Problem.
Peter Below
  Mit Zitat antworten Zitat