|
한석복 님이 쓰신 글 :
: Hongdori 님이 쓰신 글 :
: : 안녕하세요..자주 질문을 하네요..쩝..^^;
: :
: : 이번 질문은 디렉토리표시에 관한 질문입니다.
: : GroupBox나 Panel위에 Label을 놓은 다음
: : Label에다 디렉토리를 표시할려구 함니다.
: : 그런데 GroupBox나 Panel의 가로 폭이 디렉토리정보보다
: : 짧은 경우 Label에 디렉토리에 관한 정보가 모두 표시되지 않습니다.
: : 이럴때 예를 드는게 편하곘죠...
: :
: : 제가 아래의 디렉토리 정보를 표시할려구 합니다.
: : 선은 표시하는 경계선을 나타냅니다.
: : C:\program files\borland\bin\lib\test.txt
: :
: : |-------------------------------------|
: : | |
: : |C:\program files\borland\bin\include\test.txt|
: : | |
: : |-------------------------------------|
: :
: : 위의 디렉토리 정보를 아래와 같이 표현하고자 합니다.
: : 박스를 벗어 나지 않고 파일명까지 표시하고자 합니다.
: : |-------------------------------------|
: : | |
: : |C:\program files\borland\...\test.txt|
: : | |
: : |-------------------------------------|
: :
: : 저에게 도움을 주세요..
: :
: : 감사합니다.
: :
: TextWidth() 라는 함수를 Help 에서 찾아 보면 , 간단한 예제가 있을 법 한데요.
: TextWidth() 함수는 인자로 전해진 string의 길이를 리턴 해줍니다.
:
: 이것을 Control의 Width와 비교해서,
: Control의 크기를 바꾼다든지 하는 작업을 하면 될듯 합니다.
//C Builder Help에 있는 example입니다.
아마도, TextWidth(string)*2 를 해야지 Control과 비교할 수 있는
수치가 나오나 봅니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for (int i = 0; i < PageControl1->PageCount; i++)
{
AnsiString s = PageControl1->Pages[i]->Caption;
if (Canvas->TextWidth(s) * 2 > PageControl1->TabWidth)
PageControl1->TabWidth = Canvas->TextWidth(s) * 2;
if (Canvas.TextHeight(s) * 2 > PageControl1->TabHeight)
PageControl1->TabHeight = Canvas->TextHeight(s) * 2;
}
}
|