Weiß jemand wie man das eventuell mit diesem Code #3 hinbekommt?
Delphi-Quellcode:
// if you are using Delphi 2007 or older you need to correct the NativeInt declaration from 8 bytes to 4 bytes:
{$IF SizeOf(Pointer) = 4}
type
NativeInt = Integer;
{$IFEND}
function AddToPtr(const _Ptr: Pointer; _Offset: NativeInt): Pointer; inline;
begin
Result := Pointer(NativeInt(_Ptr) + _Offset);
end;
function PtrDiff(const _Ptr1, _Ptr2: Pointer): NativeInt; inline;
begin
Result := NativeInt(_Ptr1) - NativeInt(_Ptr2);
end;
var
BytesPerPixel: NativeInt;
InScanLine0: Pointer;
InBytesPerLine: NativeInt;
OutScanLine0: Pointer;
InBytesPerLine: NativeInt;
InPixel: PRgbTriple;
OutPixel: PRgbTriple;
// ...
BytesPerPixel := SizeOf(Pixel)
InScanLine0 := InBmp.ScanLine[0];
InBytesPerLine := NativeInt(_InBmp.ScanLine[1]) - NativeInt(InScanLine0);
OutScanLine0 := _OutputBmp.ScanLine[0];
OutBytesPerLine := NativeInt(_OutBmp.ScanLine[1]) - NativeInt(OutScanLine0);
OutPixel := OutScanLine0;
for y := 0 to Height - 1 do begin
for x := 0 to Width - 1 do begin
InPixel := AddToPtr(InScanLine0, InBytesPerLine * y + x * BytesPerPixel);
Pixel := InPixel^;
doSomething(Pixel);
OutPixel := AddToPtr(OutScanLine0, OutBytesPerLine * y + x * BytesPerPixel);
OutPixel^ := Pixel;
end;
end;
Ich bekomme immer den Fehler das "Pixel" nicht mit "InPixel^" kompatibel ist und weiß gerade nicht weiter.
Wo ist denn die Variable Pixel deklariert und als was? Wenn es die irgendwo in der
RTL/
VCL oder sonstigen Units gibt, die Du einbindest, könnte das die Fehlermeldung erklären.