Q&A

  • 이미지 컴포넌트에서 폰트 두께를 조절 할수 있는 방법 없을까요?
안녕하세요?

다름이 아니라 이미지 컴포넌트에서 폰트 두께를 조절 하고 싶은데 (볼드형태의 폰트의 두께를 조절가능하게) 여기 저기 뒤져봐도 답이 안나오네요
고수님들의 많은 가르침 부탁드립니다.

아래는 제가 시도 했던 방법입니다.

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;
2  COMMENTS
  • Profile
    최용일 2005.10.02 13:06
    안녕하세요. 최용일입니다.

    TForm1.TextOutEx 함수에 있는 Canvas란 변수명을 다른 이름으로 바꿔서 해보세요...
    TForm1.Canvas속성과 TForm1.TextOutEx함수의 파라매터인 Canvas가 이름이 같아서 scope에 문제가 생겼던것같네요... 바꿔서 하니 잘 됩니다.

    ^^ 항상즐코하세요...

  • Profile
    ShovelSwingMan 2005.10.03 04:55
    감사합니다 덕분에 해결했군요 =)
    Scope 문제 프로그래밍 언어론 시간에 배운듯 한데.. 그새 잊어버릴줄이야....
    역시 가볍게 치부한것은 지식이 되질 않는군요 ^^;;