Q&A

  • Label 90도 회전하는 방법 뭐 없나요.
Label 90도 회전하는 방법 뭐 없나요.
xp에서는 "@굴림"이 있는데, 98에는 없어서요.
4  COMMENTS
  • Profile
    정희돈 2006.04.07 01:18
    팁에 제가 올린게 있는데요 Label도 Canvas를 이용하니까
    라벨에 출력을 바로 하시지 마시고 Function만들어서 돌리세요

    기존에 제가 올린 소스입니다 이건 조금더 여러기능이 있는데 필요하신거만 빼세요
    90도는 소스중 lfEscapement 에 90을 주시면
  • Profile
    강중규 2006.04.07 01:53
    답변 감사합니다.
    그런데, 호출할때 인수는 어떻게 지정해야 하나요.
    예로  abc.caption := '시험용 테스트';로 되어 있을 때
    TextOutBaseWide(여기에 어떻게 코딩);


  • Profile
    정희돈 2006.04.07 02:48
    음 그냥 하나 만들었습니다 이걸로 하시면 돼고요
    안에 소스는 이해 하실수 있을껍니다 글꼴과 크기는 조절하세요

    <!--CodeS-->
    procedure TForm1.RotateLabel(Sender: TObject; SenderText: String);
    var
      LogFont: TLogFont;
      OldFont, NewFont: HFONT;
    begin
      with (Sender as TLabel).Canvas do
        begin
        Font.Name := '굴림';
        Font.Style := [];
        // 장평 적용
        if GetObject(Font.Handle, SizeOf(LogFont), @LogFont) <> 0 then
          begin
          with LogFont do
            begin
            lfHeight := 12;
            lfWidth := Round(lfHeight * 0.5);
            lfEscapement := -90 * 10; // 기울기
            end;
          NewFont:= CreateFontIndirect(LogFont);
          OldFont := SelectObject(Handle, NewFont);
          TextOut(12, 0, SenderText);
          NewFont := SelectObject(Handle,OldFont);
          DeleteObject(NewFont);
          end;
        end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      RotateLabel(Label1, '가나다라마');
    end;
    <!--CodeE-->
  • Profile
    강중규 2006.04.07 06:33

    답변 감사합니다. 해보니 제대로 되내요.
    그런데, 제가 원하는 것과 좀 다르내요.
    글자를 시계반대방향으로 90도 회전할려고 하는데요, 윈도우 xp의 글꼴중에서 폰트이름 앞에@ 붙은
    것과 같은 결과를 얻을려고요.
    사무실에 있는 pc가 98이라서....
    집에서 출력할때는 잘 되었는데, 사무실에서 하니 아무것도 화면에 안나오더라고요.(미리보기)
    그래서, 뭐 때문인가 했더니 굴림체와 @굴림체와의 차이 때문이더군요.
    xp에서는 굴림체와 @굴림체가 있는데. 98에서는 그냥 굴림체만 있어서....
    ,