|
빌더의 세계에 오심을 환영합니다.
그 매력에 한번 빠져보시길....
질문에 각각 답변 달겠습니다.
pd 님이 쓰신 글 :
: 폼으로 뭐좀 만들려고하는데 빌더는 첨써봐서 어려움이 생기네요..
: 이하에 질문이 많은데.. 어렵지않는 궁금증같습니다.
: 해결좀 해주세요.
:
: 1.
: 모든 RAD도구에서 접근방법은 두가지가있는것같습니다.
: 오브젝트 인스펙터로하는방법과
: 코딩으로하는방법이있는데
:
: PageControl1->Pages[0]->Caption= "캡션";
: 이것을 오브젝트 인스펙터에서 바로 쓸수있는방법은 없을까요?
: -----------------------------------
답변 : 오브젝트 인스펙터에서는
일단 TPageControl 로 접근할수는 없습니다.
그러나 PageControl Tabpage를 추가했다면 page를 선택하면 Page안에 TTabSheet 컨트롤이 있습니다.
그 TabSheet 컨트롤을 선택해서 Caption을 수정하시면 됩니다.
: 2.
: 스플리터를 페이지 컨트롤 위에 달았습니다.
: 그런데 스플리터를 사용하니까 텝을 닫아버리네요.
: 텝공간은 스플리터로부터 보호를 하고싶은데 어떻게 해야합니까?
: -- ---------------------------------
답변 : PageControl에 보면 Constraints라는것이 있습니다.
이것은 Control의 최소 크기 , 최대크기를 지정할수 있습니다.
0 으로 설정하면 제한이 없는것이 되구요
: 3.
: 도움말에서 이런예제를 보면
: __property Classes::TStrings* Cols[int Index] = {read=GetCols, write=SetCols};
: 제일뒤쪽의 {read=GetCols, write=SetCols}; 이부분은 무슨의미입니까?
: -----------------------------------
답변 : 위에 한줄을 프로퍼티입니다.
프로퍼티란 class내에 어떤 변수가 있는데 그 변수에 직접적으로 접근하지 못하게 것입니다.
read는 그 변수에 값을 읽어올때 사용되는 함수를 지정한것이구
write는 변수에 값을 쓸때 사용하는 함수를 지정한것입니다.
: 4.
: TStringGrid 좌우정렬방법은 어떻게 해야하나요?
: -----------------------------------
답변 : TStringGrid에서는 좌우정렬 기능을 지원하지 않습니다.
그러기 때문에 직접 canvas에 draw해줘야 합니다.
직접 draw는 TStringGrid의 OnDrawCell 함수안에서 하면 됩니다.
예)
//왼쪽정렬 함수
void __fastcall strgridcenter(TCanvas *canvas, AnsiString cell, TRect Rect) {
int LeftPos = ((Rect.Width() - canvas->TextWidth(cell)) / 2) + Rect.Left;
int gab = ((Rect.Height() - canvas->TextHeight(cell)) / 2);
canvas->FillRect(Rect);
canvas->TextOut(LeftPos, Rect.Top+gab, cell);
}
//오른쪽 정렬 함수
void __fastcall strgridright(TCanvas *canvas, AnsiString cell, TRect Rect) {
int LeftPos = Rect.Right - canvas->TextWidth(cell) + canvas->Font->Height / 4;//str_gap;
int gab = ((Rect.Height() - canvas->TextHeight(cell)) / 2);
canvas->FillRect(Rect);
canvas->TextOut(LeftPos, Rect.Top+gab, cell);
}
//가운데 정렬 함수
void __fastcall strgridleft(TCanvas *canvas, AnsiString cell, TRect Rect) {
int LeftPos = Rect.Left + str_gap;
int gab = ((Rect.Height() - canvas->TextHeight(cell)) / 2);
canvas->FillRect(Rect);
canvas->TextOut(LeftPos, Rect.Top+gab, cell);
}
//onDrawCell함수 에서 정렬 함수 호출
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
strgridcenter ( StringGrid1->Canvas , StringGrid1->Cells[ACol][ARow] , Rect ) ;
}
//---------------------------------------------------------------------------
: 5.
: TStatusBar의 중앙정렬
: TStatusBar의 자동으로 상태줄맞춤
: -----------------------------------
답변: 정렬- StatusBar의 Panels를 클릭하면 Panel 리스트가 보입니다.
그 리스트를 추가 삭제 수정을 하실수가 있는데요
Panels 에서 Panel을 하나 선택하신후 Alignment를 설정하시면 됩니다.
자동으로 상태줄맞춤 - 무슨말인지 잘 모르겠습니다.
: 6.
: TStringGrid의 클릭시 정렬방법
: -----------------------------------
답변 : 위에 4번 문제와 중복되네요 4번 문제의 답변을 보세요
: 7.
: TPageControl을 사용해서 처음에 "제목없음"이라는 텝을 넣고싶습니다.
: 어떤방법으로 넣는지 알고싶습니다.
답변 : PageControl을 선택하시고 마우스 오른쪽으 클릭하시면 Menu가 나오는데
거기서 NewPage를 클릭하시면 TabSheet가 하나 생깁니다.
- 새로만들어진 TabSheet를 선택하신후 Caption을 "제목없음"으로 수정하시면 됩니다.
이상입니다.
그럼 ....
|