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
[24026] Re:Re:[재질문]동적생성..<==와~! 답변 짱입니다..
머슴.한석복 [han8783] 914 읽음    2003-02-04 10:18
임문환 님이 쓰신 글 :
: 일단 TEdit 동적 생성은 24010 답변을 참조하시고.
:
: #define MAX_EDIT_COUNT 20
: 폼클래스 변수 또는 전역변수로
: int EditCount; //프로그램 시작 시 0으로 초기화 해야 함.
: TEdit *Edits[MAX_EDIT_COUNT];
: 로 되어 있는 상태에서
:
: 24010 답변의 매서드가 아래와 같은 것이라고 가정합니다.
: TEdit *MakeEdit()
: {
:  TEdit *edit1=new TEdit(this);
:  .
:  .
:  .
:  //이 매서드 내에서 폼에서의 해당 Edit의 위치를 조정해야 함(EditCount 변수를 사용하면 됨)
:  return edit1;
: }
:
: 폼 크기 변경 이밴트는 OnResize이고 이밴트 핸들러는 아래와 같습니다.
: void __fastcall TForm1::FormResize(TObject *Sender)
: {

: }
:
: 이 매서드 안에 코딩을 하시면 됩니다.
: 그러면 그 코딩 내용이 무엇인지 지금부터 말씀드리겠습니다.
:
: if(Height/25 < EditCount){
:    for(int desired=Height/25 ; EditCount>=desired && EditCount>0 ;EditCount--){
:      delete Edits[EditCount-1];
:    }
: }else if(Height/25 >= EditCount+1){
:    for(int desired=Height/25 ;EditCount<=desired && EditCount<MAX_EDIT_COUNT ;EditCount++){
:       Edits[EditCount] = MakeEdit();
:    }
: }
: 위 코드에서 for 루프의 시작점과 끝점에 1의 오차가 있을 수 있으니 그 건 경험적으로 조정하시면 됩니다.
:
:
: 마지막으로,
: TEdit 생성 시 소유자를 NULL로 지정한 경우 메인 폼의 OnDestroy 이밴트 핸들러에서 아래와 같이 생성한 TEdit들을 delete해야 합니다.
: void __fastcall TForm1::FormDestroy(TObject *Sender)
: {
:  for(int i=0 ;i<EditCount ;i++){
:   if(Edits[i]) delete Edits[i];
:  }
:  //EditCount=0;
: }
:
:
: 지나가는 님이 쓰신 글 :
: : 네..제가 너무 엉성하게 질문드린거 같습니다.
: :
: : 제가 edit box로 글자를 출력하는걸 만들었습니다..
: :
: : edit box 박스는 10개 정도로 메모리의 주소값을 읽어옵니다.
: :
: : 그런데..윈도우의 크기를 변경함에 따라..
: :
: : edit box 가 10 이상 늘어나거나 10개 이하로 더 줄어드는 겁니다..
: : edit box의 height가 25 정도이니 폼의 Height 180라고 한다면
: :
: :   int n = Form1->Height - 180;
: :   m_nNum  = n /25;
: :
: :   if(m_nNum > 0)
: :   {
: :     TEdit* pEdit[m_nNum];
: :   }
: :
: : 라고 하여 m_nNum 만큼만 생성하면 될거 같은데..
: : TEdit* pEdit[m_nNum]의 형태로 동적으로 생성되지 않네..여..
: : 어떻게 동적으로 생성하고 제거 할지 잘 모르겠습니다..
: :
: :
: : 

+ -

관련 글 리스트
24012 [재질문]동적생성.. 지나가는 697 2003/02/03
24017     Re:[재질문]동적생성.. 임문환 939 2003/02/03
24026         Re:Re:[재질문]동적생성..<==와~! 답변 짱입니다.. 머슴.한석복 914 2003/02/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.