|
각 컴포넌트 마다 Tag 변수도 있구요.
배열 두개를 잡아서 각 컴포넌트 포인터를 순서대로 기억하셔도되고,
TStringList 에 콤보박스1의 포인터는 문자열로 콤보박스2의 포인터를 TObject* 로 기억해도 되겠구요.
STL 을 이용해도 되겠구요.
두개의 쌍만 짝지어주게 된다면 VCL event handler 에 있는 Sender 인자값으로 금방 콤보박스2를 알 수 있겠죠.
만나바 님이 쓰신 글 :
: void __fastcall TForm_Performance::ComboBox1Click(TObject *Sender)
: {
: InstCombo->Clear();
: Instance_Query = GetDBItems(Instance_Query, "select * from test where name=\'"+GroupCombo->Text+"\'","");
: while(!Instance_Query->Eof){
: ComboBox1->AddItem(Instance_Query->FieldByName("INSTNM")->AsString,NULL);
: Instance_Query->Next();
: }
: }
:
: 위에 코드는 2개의 콤보 박스에서 첫번째 콤보박스 값을 선택하게되면 두번째 콤보박스에 하위 항목 DB값을 뿌려주는 OnClick 이벤트 입니다.
:
: 그런데 저런식의 기능을 해야하는 항목이 5개 정도 있습니다. 한마디로 콤보박스 name만 다른채 똑같은 OnClick 함수가 5개를 만들어야 합니다.
: ( 즉 첫번째 콤보박스 클릭 -> 두번째 콤보박스에 해당 항목 리스트 출력 : 이 과정을 수행해야하는 항목이 5개가 있습니다.
: 반복적인 코드
: 1첫번콤보박스에 DB값을 불러오는 과정이 반복 (여기도 뿌려야하는 콤보박스 네임만 다른 동일한 코드가 생성됨)
: 2번째 콤보박스에서는 첫번째 콤보박스 값에 따른 DB값을 출력해야하는 과정이 반복 (여기도 뿌려줘야하는 콤보박스 네임만 다름)
: )
:
:
: 정말로 5개의 똑같은 코드(콤보박스 name만다르게)를 작성하는게 좋은 코드인지, 아니면 콤보박스 name을 매개변수로 받는 함수를 만들어서 함수를 5번 호출하는게 좋은지 궁금합니다.
|