안녕하세요?
다름이 아니라 이미지 컴포넌트에서 폰트 두께를 조절 하고 싶은데 (볼드형태의 폰트의 두께를 조절가능하게) 여기 저기 뒤져봐도 답이 안나오네요
고수님들의 많은 가르침 부탁드립니다.
아래는 제가 시도 했던 방법입니다.
procedure TForm1.TextOutEx(Canvas: TCanvas; X, Y, Width, Height,
Angle: Integer; FontString:String; Text:String);
var
NewFont: HFont;
LogFont: TLogFont;
begin
ZeroMemory(@LogFont, SizeOf(LogFont));
with LogFont do
begin
lfWidth:= Width;
lfHeight:= Height;
lfEscapement:= Angle * 10;
lfOutPrecision:= OUT_TT_ONLY_PRECIS;
lfCharSet := DEFAULT_CHARSET;
StrCopy(LffaceName,PChar(FontString));
end;
NewFont:= CreateFontIndirect( LogFont );
SelectObject( Canvas.Handle, NewFont );
Canvas.TextOut( X, Y, Text );
DeleteObject( Newfont );
end;
Procedure DocontrolWidth;
begin
SetBkMode(Image1.Canvas.Handle, Transparent);
TextOutEx(Image1.Canvas, 0, 0, 100, 10, 0, Image1.canvas.font,'Test');
Image1.Repaint;
end;
TForm1.TextOutEx 함수에 있는 Canvas란 변수명을 다른 이름으로 바꿔서 해보세요...
TForm1.Canvas속성과 TForm1.TextOutEx함수의 파라매터인 Canvas가 이름이 같아서 scope에 문제가 생겼던것같네요... 바꿔서 하니 잘 됩니다.
^^ 항상즐코하세요...