Pytanie : PNG Wizerunek Wyzwolenie, móc z D2010

I próbować the PNG wizerunek wyzwolenie z delphi 2010 od http://pngdelphi.sourceforge.net.
Kompilator przerwa, przez móc wartość the lewa strona błąd przy ten linia:

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

kompilować że wyzwolenie i bieg z D7 być żadny problem
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedura TChunkIDAT.CopyInterlacedRGB8 (const Przepustka: Bajt;
  Src, Dest, Trans {$IFDEF Store16bits}, Dodatek {$ENDIF}: pChar);
var
  Col: Integer;
zaczynać
  {Dostawać pierwszy kolumna i wchodzić do w pętla}
  Col: = ColumnStart [Przepustka];
  Dest: = pChar (Longint (Dest) + Col * 3);
  powtórka
    {Kopiować ten rząd}
    Bajt (Dest^): = fOwner.GammaTable [pByte (Longint (Src) + 2)^]; inc (Dest);
    Bajt (Dest^): = fOwner.GammaTable [pByte (Longint (Src) + 1)^]; inc (Dest);
    Bajt (Dest^): = fOwner.GammaTable [pByte (Longint (Src)    ) ^]; inc (Dest);

    {Ruch następny kolumna}
    inc (Src, 3);
    inc (Dest, ColumnIncrement [Przepustka] * 3 - 3);
    inc (Col, ColumnIncrement [Przepustka]);
  do Col >= ImageWidth;
końcówka;
Doczepianie:
 
 
 
png libarary
 
 
png libarary
 
 
png libarary
 

Odpowiedź : PNG Wizerunek Wyzwolenie, móc z D2010

Zamieniać pChar pByte, ono pracować jak urok
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedura TChunkIDAT.CopyInterlacedRGB8 (const Przepustka: Bajt;
  Src, Dest, Trans {$IFDEF Store16bits}, Dodatek {$ENDIF}: pByte);
var
  Col: Integer;
zaczynać
  {Dostawać pierwszy kolumna i wchodzić do w pętla}
  Col: = ColumnStart [Przepustka];
  Dest: = pByte (Longint (Dest) + Col * 3);
  powtórka
    {Kopiować ten rząd}
    Dest^: = fOwner.GammaTable [pByte (Longint (Src) + 2)^]; inc (Dest);
    Dest^: = fOwner.GammaTable [pByte (Longint (Src) + 1)^]; inc (Dest);
    Dest^: = fOwner.GammaTable [pByte (Longint (Src)    ) ^]; inc (Dest);

    {Ruch następny kolumna}
    inc (Src, 3);
    inc (Dest, ColumnIncrement [Przepustka] * 3 - 3);
    inc (Col, ColumnIncrement [Przepustka]);
  do Col >= ImageWidth;
końcówka;
Inne rozwiązania  
 
programming4us programming4us