C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[40791] Re:[질문]ShowMessage 박스 크기 고정
강재호.만해 [greenuri] 920 읽음    2005-06-28 18:10
랴노 님이 쓰신 글 :
: 간단한 정보를 표현 하기 위해 ShowMessage()를 사용하는데
: 이때 이 메시지 박스의 크기를 고정 시킬수는 없나요?

안녕하세요 만해입니다.

밑에 에러 그린님의 답변이랑 같은 내용인데요

좀만 더 구체적으로 애기 하면요

ShowMessage는 자동적으로 메세지의 크기에 따라서 폼의 크기가 변경 됩니다.

그건 아시죠?

고정 크기로 하실려면 사용자 정의 폼으로 메시지 폼을 하나 만들시고요

그걸 Show하면서 메세지를 입력 하며 됩니다.

그러니깐

TMsgForm frm = new TMsgForm(this);
frm->Message = "보여줄 메세지";
frm->Show();
delete frm;

이런식으로 하면 간단하고요

메세지 폼의 성격에 따라
frm->FormStyle = fsStayonTop;
이것 같은 경우는 최상위로 쓰게 할때 쓰입니다.

그리고 Modal로 뜨게 하실려면
frm->ShowModal();

이런식으로 하시면 되고요

간혹 메세지 폼을 생성해서 뛰워야 하는데

Form이 아닌 Thread나 아니면 공용 유닛에서 뛰워야 한다면

메세지폼 생성시 약간의 수정을 가해주면 됩니다.

TMsgForm frm = new TMsgForm(Application);
frm->Message = "보여줄 메세지";
frm->Show();
delete frm;

젤 위의 소스와 틀린점은 생성자에서 인자가 틀리다는 건데요

젤 위의 소스의 경우 this는 이 메세지 폼이 생성되는 폼을 의미 하고요

밑의 소스의 경우 Application을 쓰는 이유는 Form에서 생성 되지 않기 때문에 Applcation을 가져 왔습니다.

참고로 Application은 전역 정적 객체입니다.

this나 Application이 필요한 이유는 이 폼이 자신을 생성 하는 객체의 비주얼한 속성에 따라서

간혹 오작동 할수 있습니다.

대표적인 경우가 Canvas does not draw ~~~~ 라는 에러 메세지인데요

이 에러 메세지가 뜨는 경우에는 Form을 생성 할때 인자를 확인해 보세요

그럼이만`

ps. 에궁 쉬운걸 넘 어렵게 설명한건 아닌가 모르곘네요 ㅋㅋㅋ ~

+ -

관련 글 리스트
40760 [질문]ShowMessage 박스 크기 고정 랴노 896 2005/06/27
40791     Re:[질문]ShowMessage 박스 크기 고정 강재호.만해 920 2005/06/28
40811         Re:Re:[질문]ShowMessage 박스 크기 고정 랴노 1132 2005/06/29
40761     정상적인 방법으로는 불가능 마술감자 820 2005/06/27
40774         Re:정상적인 방법으로는 불가능 791 2005/06/27
40777             Re:Re:정상적인 방법으로는 불가능 evergreen 866 2005/06/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.