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.
Danke für die Antwort.
ich habe vorher es versucht :
type TRGBarray = array[0..(High(Cardinal) div Sizeof(TRGBQuad))-1] of TRGBQuad;
aber es tritt ein Fehler auf: E2100 Datentyp zu groß:2 GB überschritten