Asphyre Extreme - Błąd przy instalacji komponentu

0

Mam problem z instalacją Asphyre Extreme w Delphi XE, pod Delphi 2007 Lite instaluje się bez problemu, natomiast w XE w module pngimage.pas wywala błąd:

Left side cannot be assigned to
Publikuję ten kawałek kodu:

procedure TChunkIDAT.CopyInterlacedRGB8(const Pass: Byte;
  Src, Dest, Trans{$IFDEF Store16bits}, Extra{$ENDIF}: pChar);
var
  Col: Integer;
begin
  {Get first column and enter in loop}
  Col := ColumnStart[Pass];
  Dest := pChar(Longint(Dest) + Col * 3);
  repeat

    {Copy this row}
>>    Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; inc(Dest);
>>    Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 1)^]; inc(Dest);
>>   Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src)    )^]; inc(Dest);

    {Move to next column}
    inc(Src, 3);
    inc(Dest, ColumnIncrement[Pass] * 3 - 3);
    inc(Col, ColumnIncrement[Pass]);
  until Col >= ImageWidth;
end;

Może ktoś spotkał się z podobnym problemem. Proszę o kierunek w którym mam szukać. Próbowałem dyrektywy, to nic nie daje.

0
Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; inc(Dest);

WTF. i słusznie że nie działa. spróbuj:

PByte(Dest)^ := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; inc(Dest);
0

Dzięki za pomoc.

0

ale, ale… sprawdź czy to działa. w Delphi XE sizeof(char) <‌> sizeof(byte)

, a tu mamy rzutowanie <code noframe>^char

na ^byte

. może się przez to bufor rozjeżdżać.
jeśli będzie z tym problem, zamień `pchar` na `pansichar` - to jest „stary” pchar.

1 użytkowników online, w tym zalogowanych: 0, gości: 1