|
static_cast<TListBox*>(Panel2->FindChildControl("List0"))->Items->Add("aaa");
이런 식으로 접근할수 있습니다.
그리고 해당 ListBox에 이벤트를 작성해야 하실 경우에는
void __fastcall TForm1::ListBox0MouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
ShowMessage("AAA");
}
이런식으로 규격에 맞춰서 -_-;; 이벤트를 작성하시고 생성시키실때
l->OnMouseDown = ListBox0MouseDown;
이런 식으로 사용하시면 편합니다. 사실 규격에 안맞춰도 상관없지만 똑같은 형이 아니면 안들어가기 때문에 그냥 같은 컴포넌트를 하나 만들어서 이벤트를 작성하시고 그걸 복사하신다거나 해서 연결시켜주시는게 속편합니다.(연결하기 전에 실험도 해볼수 있다는 장점이 있죠;)
잘은 모르지만 아마 컬렉션이나 그런데에다 넣고 사용할수도 있을거예요;(하지만 모르니까 패스)
초보 님이 쓰신 글 :
: for(int i=0;i<Edit1->Text.ToInt();i++){
:
: String str;
: str.sprintf("List%d",i);
:
:
: TListBox *l = new TListBox(this);
: l->Parent = this->Panel2;
: l->Name = str.c_str(); //name
:
:
: TSplitter *s = new TSplitter(this);
: s->Parent = this->Panel2;
: s->Align=alTop;
: }
:
:
:
: // 위에같은 방법으로 Listbox를 9개 생성하여
: 이름을 List0,List1 ... 이런식으로 주었습니다.
:
: 뒤에 List1,List2 를 계속 사용하며 값을 넣었다 뺐다 해야되며
: 비교를 해야될것이 많습니다.
:
: 동적생성시 주었던 이름을 바로 호출하여 쓰니 에러가 납니다.
:
: List1->Items->Add("1");
: List2->Items->Add("2");
:
: 이런식으로요....
:
: 동적생성한 컨트롤은 폼위에 드래그로 올린것 처럼 쓸수 없나요?
: 이름을 구해올 방법이 없는건지요?
:
: 반드시 동적생성을 사용해야될 상황입니다.
: 상황에 따라 listbox 개수가 다르거든요...
:
: 빠른 답변좀 부탁드립니다...ㅠㅠ
|