img 에 imgList 의 idx 번째 그림을 그리는 함수
(주의) TImageList 의 Width, Heigth 를 바꾸지 않으면 백날 Crop, Stretch 선택해봤자 16*16 만큼만 그림이 나올것임.
 
 
procedure DrawImage(imgList: TImageList; idx: Integer; img: TImage);
var rt: TRect;
begin
  Windows.GetClientRect(img.Canvas.Handle, rt);
  img.Canvas.FillRect(rt);
  imgList.Draw(img.Canvas, 0, 0, idx, True);
end;
 
 
 
 
 
 
 
 
모든 TCanvas 에 글자를 뿌릴 수 있음...내부적으로는 ExtTextOut() API 함수를 이용함.
 
 
// img = TImage...
img.Canvas.TextOut(0, 0, 'Test Message');
 
 
 
 
 
 
 
 
자기자신의 폼 상단 중앙에 글자를 뿌리는 함수
DrawText() 를 이용
 
 
procedure TForm1.MyDrawText;
const MSG='Hello World';
var
  aFont: HFont;
  aHWND: HWND;
  aDC: HDC;
  aRect: TRect;
begin
  aFont:=CreateFont(12, 0, 0, 0, 100, 0, 0, 0, HANGEUL_CHARSET, 0, 0, 0, 0, '돋움체');
  aHWND:=Handle;
  aDC:=GetDC(aHWND);
  try
    SelectObject(aDC, aFont);
    SetTextColor(aDC, $000000FF);
    SetBkMode(aDC, TRANSPARENT);
    Windows.GetClientRect(aHWND, aRect);
    DrawText(aDC, PChar(MSG), Length(MSG), aRect, DT_CENTER);
  finally
    ReleaseDC(aHWND, aDC);
    CloseHandle(aHWND);
    DeleteObject(aFont);
  end;
end;






Posted by bloodguy
,