Q&A

  • message dialogbox 의 폰트변경
안녕하세요?

늘 이렇게 도움만 청하네요... 초보라서

다름이 아니오라 메세지 다이알로그의 폰트는 어디서 변경하죠?



1  COMMENTS
  • Profile
    이재식 2000.03.02 02:32
    문영철 wrote:

    > 안녕하세요?

    > 늘 이렇게 도움만 청하네요... 초보라서

    > 다름이 아니오라 메세지 다이알로그의 폰트는 어디서 변경하죠?

    >



    이재식 Wrote :

    안녕하세요?



    아시겠지만, 메세지 다이얼로그 박스의 폰트 및 그 크기를 변경하면

    MessageDlg,MessageDlgPos, MessageBox, ShowMessage, ShowMessagePos등은

    모두 바뀌어 버립니다.

    이유는 위 모든 함수들이 CreateMessageDialog라는 함수를 공용하기 때문입니다.



    즉, 한 application에서, MessageDlg에서는 굴림체에 12로 했다가,

    showMessage에서는 바탕체에 10으로 할 수 없습니다.

    그렇기 하기위해서는 다시 소스를 고쳐야 합니다.

    여기서, 소스란 dialogs.pas소스를 말합니다. 델파이가 주는 소스입니다.



    변경하는것은 좀 까다(?)롭습니다.

    그래도, 한번 고쳐보실 랍니까?



    일전에 저의 메일로 showMessage의 폰트 및 크기를 변경하고 싶은데,

    방법을 여쭈어보는 분이 있었습니다.

    그래서, 짬을 내서 dialogs.pas파일을 변경했는데, 만족하시더라구요.



    여기서 다시 설명을 좀 해야 겠네요.

    우선 제가 변경한 dialogs.pas의 dialogs.dcu를 드리는것이 가장 좋은데,

    여기에 파일을 올리는 방법을 모르겠군요.

    dialogs.pas에서 CreateMessageDialog함수를 찾아서 해당부분을 위처럼

    고치세요.



    ClientWidth

    := Max(IconTextWidth, ButtonGroupWidth) + HorzMargin * 2 +

    (canvas.TextWidth(msg) div 4) + (HorzMargin div 8) ;

    ClientHeight := IconTextHeight + ButtonHeight + VertSpacing +

    VertMargin * 2 + canvas.TextHeight(msg) div 8 ;





    with TLabel.Create(Result) do

    begin

    ...

    ...

    Parent := Result;

    WordWrap := True;

    Caption := Msg;



    // 나의 추가

    //*************************



    font.Size := 12 ;

    font.name := '굴림체' ;

    // ***************************



    ...

    ...

    ...

    // ******************************************

    SetBounds (Aleft, vertMargin,

    TextRect.Right + canvas.TextWidth(msg),

    TextRect.Bottom + canvas.TextHeight(msg)

    ) ;

    // ***********************************************



    ...

    ...

    위처럼 세부분만 수정하면 됩니다.

    모든 다이얼로그 박스는 내용을 Label에 출력을 합니다.

    그것은 CreateMessageDialog박스 함수를 들여다보면 쉽게 알 수 있습니다.



    수정의 핵심은 MessageForm의 client영역을 수정해야 합니다.

    글씨 유형과 크기에 따라 client영역이 당연히 커졌다 줄었다 해야 하니까요.



    그리고, Label의 폰트 및 크기를 변경하면 됩니다.



    동시에 Label의 bound영역을 수정해야 합니다.

    이것을 수정하지 않으면 label에 쓰여지는 글자크기 및 내용의 양 그리고 글자유형에

    따라 내용들이 깨져버립니다.



    pas를수정하시면 반드시 재컴파일하셔서 ..lib디렉토리에 dcu파일을

    엎어쓰기 하셔야 합니다.

    그리고, 해당 응용프로그램을 실행하시면 됩니다.

    기존에 실행되어 있다면 일단은 닫고 다시 실행해야 새로 변경된

    dcu파일을 인식할 수 있습니다.





    • 강인규
      2000.03.01 22:07
      쿼리로 데이터를 물러와서 add해주심 됩니다. 도움이 되셨기를..... while not query1.EOF do begin ...
    • 서지현
    • 2000.03.01 03:37
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
      2000.03.01 19:08
      서지현 wrote: > 말그대로 > DBGrid를 출력하고 싶은데.... 이럴땐 어떻게 하는지.... > 검색한 결과를...
    • 정성훈
      2000.03.01 19:15
      정성훈 wrote: > 서지현 wrote: > > 말그대로 > > DBGrid를 출력하고 싶은데.... 이럴땐 어떻게 하는지...
    • 서지현
      2000.03.02 06:42
      안냐세요~~~ 그런데 질문이 하나더 있는데~~~ QuickRep를 사용하지 않고 현재 사용하고 있는 form에서 ...
    • 술친구
      2000.03.02 20:20
      안녕하세요 술친굽니다. 퀵리포트 없이 인쇄를 하시려면 강의실의 인쇄부분을 참고하시면 되겠군요.. 시...
    • 강민주
    • 2000.03.01 03:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 무기명
      2000.03.01 09:29
      전혀 문제가 없습니다... 다만 타이머의 인터벌을 초에서 분으로 바꿔주는게 전제 시스템 성능상 더 좋...
    • 영~
    • 2000.03.01 03:31
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 문영철
    • 2000.03.01 02:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.03.02 02:32
      문영철 wrote: > 안녕하세요? > 늘 이렇게 도움만 청하네요... 초보라서 > 다름이 아니오라 메세지 다이...
    • 최용일
      2000.03.01 21:06
      똑같은 방식으로 호출하시면 됩니다... 단지 Key파라메터에 눌려진 키의값을 넣어서 호출하시면 됩니다......
    • 구창민
      2000.03.01 02:08
      임형호 wrote: > 질문의 요지는 만약 프로그램에서 > > procedure Tform1.button1Click(Sender: TObje...
    • yesir
    • 2000.03.01 01:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.03.01 01:52
      yesir wrote: > 안녕하세요... > 또 왔네염... > > 제가 이번에 드릴 질문은여... > 알트를 이용한 ...
    • 김광섭
      2000.03.01 01:25
      yesir wrote: > 안녕하세요... > 또 왔네염... > > 제가 이번에 드릴 질문은여... > 알트를 이용한 ...
    • 문영봉
    • 2000.03.01 00:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김광섭
      2000.03.01 01:20
      문영봉 wrote: > 파라독스로 저장되어 있는 자료를 ms-sql7.0 서버로 자료를 옮기려고 합니다 > 기존에 ...
    • Rookie
    • 2000.03.01 00:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 문영철
    • 2000.02.29 23:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 젠키
      2000.03.01 00:11
      문영철 wrote: > 안녕하세요? > 소수 (예... 1.01 ) 을 오라클db에 저장하려합니다. > 변수선언은 doubl...
    • 하얀까마귀
      2000.03.01 00:04
      --------------------------------------------- 음.... %f라... ...쩝.... 보기) with query1 do beg...
    • optech
    • 2000.02.29 23:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.03.01 02:55
      저두 확실히 확인은 안해봤습니다만.... 파라독스는 델파이를 사면 부록으로 끼워주는 즉 델파이 개발자버...
    • 하얀까마귀
      2000.02.29 23:48
      안녕하세요 하얀까마귀 입니다. 라이센스에 대해서는 저도 자세히는 모르는데 아는데 까지 몇자 적습니다....
    • park
    • 2000.02.29 21:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.05 10:48
      김성동님의 홈페이지 개발실에 있는 TAssFileListBox를 사용하시면 될것같네요... http://www.acrosoft.pe...
    • 하얀까마귀
      2000.02.29 23:57
      안녕하세요 하얀까마귀입니다.. 업무 프로그램 하면 이놈의 리포트 때문에 무지 골머리 썩죠??? 저두 그...
    • 술친구
      2000.02.29 22:47
      황선희 wrote: > > > detail band와 summery band와의 공백을 detail band 양식을 그대로 채울려고 합...
    • 손님
      2000.03.09 12:53
      술친구 wrote: > 황선희 wrote: > > > > > > detail band와 summery band와의 공백을 detail band 양...
    • 저요
    • 2000.02.29 19:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상호
      2000.03.03 09:57
      아마 폼 안에서의 좌표계때문인 것 같은데 Form의 메쏘드인 ClientToScreen 함수를 사용해보세요. 폼의 ...
    • 하얀까마귀
      2000.02.29 23:58
      저요 wrote: > 윈도우의 해들을 구해 좌표를 얻었습니다. > 그중에서 몇가지 프로그램의 좌표는 그 프로...
    • 황윤환
    • 2000.02.29 19:34
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조영섭
      2000.09.02 19:18
      안녕하세요 델파이이에서(SOCKET 통신) 서버가 특정 클라이언트로 통신을 하고자 할때 연결된 특정 클라...
    • 허일학
      2000.02.29 20:20
      황윤환 wrote: > listbox의 아이템이다음과 같이 있다고 하면 > VTOOL라는 글자를 검색해서 하이텔 VTOOL...
    • 술친구
      2000.02.29 20:39
      허일학 wrote: > 황윤환 wrote: > > listbox의 아이템이다음과 같이 있다고 하면 > > VTOOL라는 글자를 ...