|
빌더만 하다보니, 델파이 문법에 문제가 많네요.. 더 열심히 공부해야 겠습니다.
Graphics32 의 애드온 컴포넌트인 GR32Ex 를 구하여 설치하고 있습니다.
한번에 되는 일이 없는게 삶인가봐요.^.^
아래 소스에서 에러가 발생합니다.
{Copy interlaced images with 1 byte for R, G, B}
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;
Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; 라인에서
"E2064 Left side cannot be assigned to" 에러가 발생합니다.
무슨 에러인지는 충분히 알고 있는데요..ㅎ ...
델파이에서 Byte() 와 ^ 를 잘 모르겠네요..
델파이에서 포인터(?) 변수 선언시에 ^ 를 사용하는걸로 짐작합니다만,,,, 이렇게 알고 위 에러라인을 해석하면 에러 문구대로 말이 안되는 코딩으로 보입니다.
정말 에러가 있는것인지,,,,, 어떻게 수정해야 에러가 없을까요?
fOwner.GammaTable[] 에 있는 Char 값을 Dest 쪽에 Byte 값으로 넣어야 하는것으로 전 해석되는데요..이것을 델파이 코드로 작성하지 못하겠네요.
도움 부탁드립니다... 그럼 건강하세요..^.^
|