|
MDI Child를 이용하는데 무엇이 문제인지 이해가 잘 안되네요
[객체관리]
VCL에서 기본적으로 제공되는 TList 이용하여 동적으로 생성되는
여러가지 객체를 관리할 수 있습니다.
@ TList 예제
struct MyStruct
{
int i;
String s;
};
TList *StLst;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
StLst=new TList;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
while(StLst->Count>0)
{
MyStruct *st=(MyStruct *)StLst->Items[0];
delete st;
StLst->Delete(0);
}
delete StLst;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MyStruct *st=new MyStruct;
st->i=StLst->Count+1;
st->s=Now().FormatString("yyyy-mm-dd hh:nn:ss");
StLst->Add(st);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(StLst->Count>0)
{
MyStruct *st=(MyStruct *)StLst->Items[0];
ShowMessage(st->s);
delete st;
StLst->Delete(0);
}
}
//---------------------------------------------------------------------------
님께서 말한 TTypeList 는 Template 으로 만든것으로
compile할때 객체의 형을 결정하여
아래처럼 사용시 형변환이 필요없습니다.
MyStruct *st=(MyStruct *)StLst->Items[0];
나머지는 비슷합니다.
그럼..
이용태 님이 쓰신 글 :
: 프로그램을 만들고 있습니다. MDI 입니다.
:
: child 원도를 만들때마다.. child 원도의 포인터를 가리키는 MDIChildren[i]가 생깁니다..
:
: 이것을 이용해서.. 여러 child 원도들을 선택하여 해당 작업을 수행할 수 있습니다.
:
: 그런데.. 생성된 child 원도들에 한개의 폼을 이용하여 특정 작업을 수행하고 싶습니다.
:
: 예를 들면 다음그림과 같이.. child1, child2 원도우가 있고.. 이 child 원도에 특정 기능을 수행 할 수 있는 Form이 있습니다.
:
: ----------------
: function, variables <---- Form
: ----------------
:
: ----- -----
: child1 child2 <---- child window
: ----- ------
:
:
: Form을 띄워서 에딧박스에 변수값을 설정한 후, 특정 기능을 실행시키는 버튼을 누르면 child1에 그 기능이 적용됩니다. Form은 현재 띄어져 있는 상태입니다.
:
: 이 상태에서 child2를 선택하면.. 기존 child1에서 작업한 변수값들이 모두 초기화 된 상태로 Form이 변합니다. 여기서 다시 Form에 변수값을 설정한 후, 특정 기능을 실행시키는 버튼을 누르면 child2에 그 기능이 적용됩니다.
:
: 그리고 나서 다시 child1을 선택하면.. 이전에 설정했던 변수들이 Form에 재 설정되고, 다시 child2를 선택하면 child2에서 설정한 변수값들이 Form에 재설정되도록 하고 싶습니다.
:
: 그래서 생각한게 폼에서 설정하는 변수들을 모은 구조체를 동적으로 생성시켜 관리하면 좋을거 같다라고 생각했고.. 링크드리스트를 이용하면 되겠다 라고 생각했지만... 좀 다른 것을 사용해보고 싶어 여기 컴포넌트/라이브러리, 자료실을 뒤져 보니 몇개의 자료가 있더군요... 그런데... 결정적으로 실력이 안되어.. 이해하기 어렵더군요... -_-;;;
:
: 죄송하지만...
: 컴포넌트/라이브러리)474. Template TList, 형을 지정할 수 있는 유사 TList. (버그 수정됨. 3)[1][2]
: 컴포넌트/라이브러리)441. 구조체를 동적 배열로 관리할 수 있는 클래스[1]
: 에 관련된 예제 소스 사용법이나 다른 동적으로 구조체 관리할 수 있는 것들을 알려주시면 안될까요?
:
: 답변 부탁드립니다.
|