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;
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;
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;
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;
'Delphi' 카테고리의 다른 글
Delphi 레퍼런스 사이트 (0) | 2009.04.18 |
---|---|
[Windows] netsh - 네트워크 관련 쉘 명령어 (0) | 2009.04.18 |
[Delphi] 현재 IMM 상태 (한글/영문) 체크, 변경 (0) | 2009.04.18 |
[Delphi] 커서 포함 화면캡쳐 (0) | 2009.04.18 |
[Delphi] Indy10 TCP - 구조체 데이터 주고받기 (0) | 2009.04.18 |