|
랴노 님이 쓰신 글 :
: 간단한 정보를 표현 하기 위해 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. 에궁 쉬운걸 넘 어렵게 설명한건 아닌가 모르곘네요 ㅋㅋㅋ ~
|