감사합니다..
제가 알고 싶었던것은... 찾는 컴포넌트가 scrollBox안에 있는지 를 check 할수 있는 방법이 있나해서요..
scrollbox 안에 있다면... HorzScrollBar->Position,ScrollBox1->VertScrollBar를 움직일 필요없고...
scrollbox밖에 있는 컴포넌트이면... 컴포넌트가 조금만이라도 보일수 있도록... 최소한으로 움직일수 있는
방법을 찾고 있습니다...
찾는 콤포넌트의 left,top으로 움직이니까,화면이 너무 이동해서..깜빡거리는 현상이 일어나서요?
거듭 감사드림니다.
*)공부에 왕도는 없겠지만,,그래도 C++builder를 정석으로 공부할수 있는 추천의 방법이 있으면... 조언해 주시면 감사하겠습니다...책이 많은것도 아니고,월간지 등이 있는것도 아닌것 같고...
장성호 님이 쓰신 글 :
: 음...
:
: [Panel위에 있는 컨트롤 찾기]
: 먼저 Panel위에 있는 Control을 찾는 방법은?
: FindChildControl을 이용하시면 됩니다.
:
: TForm에만 있는 함수가 아니라 모든 TWinControl에 있는 함수입니다.
:
:
: //다음과 같이 찾습니다.
: TButton *btn=(TButton *)Panel3->FindChildControl("Button1");
:
: //또는 아래과 같이 TEdit로 입력을 받아서..
: TButton *btn=(TButton *)Panel3->FindChildControl(Edit1->Text);
:
:
:
:
: [ ScrollBox의 ScrollBar를 Control이 있는 위치로 이동]
: 님이 올린 샘플을 보니 ScrollBar위에 있는 Panel의 위치가 (0,0)이 아니더군요
: 즉 이런경우에 ScrollBar의 HorzScrollBar->Range 나 ScrollBox1->VertScrollBar->Range 가
: Panel의 크기와 일치하지 않게 됩니다.
:
: 1. 먼저 ScrollBar위에 있는 Panel의 위치를 (0,0)으로 폼 디자인타임에 설정하십시요
: 그럼 ScrollBar의 Scroll Range가 Panel의 크기와 같게 됩니다.
:
: 2. 그런다음 FindChildControl 찾은 Button의 Left , Top을 ScrollBox의
: HorzScrollBar->Position 과 VertScrollBar->Position으로 설정하시면 됩니다.
:
:
: void __fastcall TForm1::Button6Click(TObject *Sender)
: {
: TButton *btn=(TButton *)Panel3->FindChildControl(Edit1->Text);
: if(btn)
: {
: ScrollBox1->HorzScrollBar->Position=btn->Left;
: ScrollBox1->VertScrollBar->Position=btn->Top;
: }
: }
:
: 그럼...
:
:
: linuxman 님이 쓰신 글 :
: : 안녕하세요..
: : 스크롤박스 안에..아주 큰 패널을 만들었습니다.
: : 그런후에 패널의 여기저기에 동적인 콤포넌트 들을 배치하였습니다...
: : (여기 저기 있기때문에...)
: :
: : 스크롤 박스 안에 원하는 콤포넌트가 있는지 체크할수 있는 방법과
: : 없다면... 스크롤박스를 최소한 움직여서 원하는 콤포넌트를 스크롤 박스의
: : 귀퉁이에라도 보여주고 싶은데... 좋은방법이 있을까요?
: :
: :
: : ScrollBox1->VertScrollBar->Position=Button1->Left;
: : ScrollBox1->HorzScrollBar ->Position=Button1->Left;
: :
: : 수고하세요.