C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[59212] 델파이 코드가 이해되질 않네요..
넘초보 [mspower] 1413 읽음    2009-11-24 08:31
빌더만 하다보니, 델파이 문법에 문제가 많네요.. 더 열심히 공부해야 겠습니다.

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 값으로 넣어야 하는것으로 전 해석되는데요..이것을 델파이 코드로 작성하지 못하겠네요.

도움 부탁드립니다... 그럼 건강하세요..^.^

+ -

관련 글 리스트
59212 델파이 코드가 이해되질 않네요.. 넘초보 1413 2009/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.