C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50601] Re:동적으로 구조체를 핸들링 하고 싶은데요...
장성호 [nasilso] 1403 읽음    2007-09-18 22:57
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]
: 에 관련된 예제 소스 사용법이나 다른 동적으로 구조체 관리할 수 있는 것들을 알려주시면 안될까요?
:
: 답변 부탁드립니다.

+ -

관련 글 리스트
50590 동적으로 구조체를 핸들링 하고 싶은데요... 이용태 1264 2007/09/17
50601     Re:동적으로 구조체를 핸들링 하고 싶은데요... 장성호 1403 2007/09/18
50611         Re:Re:동적으로 구조체를 핸들링 하고 싶은데요... 이용태 1424 2007/09/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.