|
해당 폼에서 리스트뷰에 접근하는 것은 가능한데,
다른 클래스에서 리스트뷰에 접근하려고 하면,
에러가 나는데(SetListView()에서) 컴포넌트를 다른 클래스에서 포인터로 넘겨받아 가능할까요?
class TForm1 : public TForm
{
__published: // IDE-managed Components
TListView *ListView1;
TButton *Button3;
void __fastcall Button3Click(TObject *Sender);
private:
public: // User declarations
__fastcall TForm1(TComponent* Owner);
abc *ABC;
};
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ABC->SetListView(ListView1);
ABC->Debug_List();
}
//--------------------------------------------------------------------------
class abc
{
private:
abc();
~abc();
public:
void SetListView(TListView *lstView1);
void Debug_List();
TListView *lstData;
};
//---------------------------------------------------------------------------
abc::abc()
{
lstData = NULL;
}
abc::~abc()
{
}
void abc::SetListView(TListView *lstView1)
{
lstData = lstView1;//요기서 에러가 납니다.
}
void abc::Debug_List(void)
{
TListItem *ListItem;
ListItem = lstData->Items->Add();
ListItem->Caption = "abc";
ListItem->SubItems->Add("def");
ListItem->SubItems->Add("ghi");
ListItem->SubItems->Add("klm");
lstData->Perform(WM_VSCROLL, SB_BOTTOM, 0);
}
|