Q&A

  • 급한 질문입니다..
procedure ViewStr(DC: HDC; X, Y, nx, ny: Integer; P: PChar);

(*-----------------------------------------------------------

DC = DC 핸들

X, Y = 출력될 화면상의 위치

nx = 글꼴 너비

ny = 글꼴 높이

P = 출력될 문자열의 주소값

-----------------------------------------------------------*)

var

i,

len,

size : integer;

VarArray : variant;

TmpDC : HDC;

OldBmp,

TmpBmp : HBITMAP;

begin

if p = nil then exit;

len := strlen(p);

size := len;

inc(size, size mod 2);

VarArray := VarArrayCreate([0, size * ny - 1], varByte);

~~~~~~~~~~~~~~

FontArray := VarArrayLock(VarArray);

~~~~~~~~~~~~

VarArrayUnlock(VarArray);

~~~~~~~~~~~~~~



i := 1;



while p^ <> #0 do begin

if (byte(p^) and $80) <> 0 then

begin

GetHanImage((byte(p^) shl 8) + byte((p+1)^), size, i - 1);

Inc(i);

Inc(p);

end else

GetEngImage(byte(p^), size, i - 1);

Inc(i);

Inc(p);

end;



TmpBmp := CreateBitmap(len * nx, ny, 1, 1, FontArray);

TmpDC := CreateCompatibleDC(DC);

OldBmp := SelectObject(TmpDC, TmpBmp);

BitBlt(DC, x, y, len * nx, ny, TmpDC, 0, 0, SRCCOPY);

SelectObject(TmpDC, OldBmp);

DeleteDC(TmpDC);

DeleteObject(TmpBmp);

end;



지금 한글 컴포넌트를 분석하고 있는데요.. (참고로 전 VC를 쓰고여.. Delphi는 초보 수준입니다.. ㅠㅠ)

위 소스에서 제가 물결표시 한 부분에 에러가 나는데요..

왜 에러가 나죠?





0  COMMENTS