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
[25750] Re:[질문]동적 생성 Edit DBEdit, Label 의 갱신 또는 재생성, 수정
skjoon [skjoon] 1039 읽음    2003-05-26 11:49
choco-milford 님이 쓰신 글 :
: 제 코드의 개념을 적어보죠.
:
: 1.Form1->Edit1에 정수 입력.
:
: 2.Form2에서 Edit DBEdit, Label 들을 동적 생성.(FormActivate 이벤트에서)
:
: 문제점 : 첨 생성은 되는데 런타임중에 Form1->Edit1 수정하고 Form을 다시 열면(활성화)
:          이전에 생성됐던 Edit DBEdit, Label 들과 이름이 충동합니다.
:          당연 기존 것들의 이름을 동적 생성하였으므로...
:
:          창을 닫아도 일단 값들은 유지해야 하므로 바로 Form2가 닫힐 때
:          이전 생성된 컴포넌트들을 삭제할 수는 없습니다.
:
:          따라서 Form1->Edit1을 수정하고 버튼을 눌러 Form2->Show()하면
:          이전에 생성되었던 것들을 삭제하고 다시 생성시켜야 할 것 같은데...
:          잘 모르겠네요.
:
:
: void __fastcall TForm2::FormActivate(TObject *Sender)
: {
:  int Count;
:  Count = StrToInt(Form1->Edit->Text);
:
:  for (int i=1; i<=Count; i++)
:  {
:       /*Edit 생성*/
:      TEdit *edit1;
:      edit1 = new TEdit(this);
:      edit1->Parent = this;
:      edit1->Left = 38;
:      edit1->Top = 24*i;
:      edit1->Name = "EdtSession" + String(i);
:  }
: }
:
: Edit 생성전에 삭제하는 방법을 좀 알려주세요....전 너무 초보라는 사실을 감안하시고 ㅜㅜ
:

폼을 열때마다 컴포넌트를 삭제하실 필요는 없을거 같습니다.
폼이 생성되면서(OnCreate) 컴포넌트를 동적으로 생성하고, 폼이 없어질때(OnDestroy) 삭제해주시면 될것 같네요
그러기 위해서는 TForm2의 멤버변수(TEdit*)에 동적으로 생성된 컴포넌트의 포인터를 저장해 놓고, 그 포인터를 통해서 Edit의 값을 수정하고, Edit를 삭제하는 방법이 있습니다.

Form1에서는 Form2를 열기 전에, Form2->Edit의 포인터->Text = ""; 이렇게 해 주시면 될겁니다.

+ -

관련 글 리스트
25747 [질문]동적 생성 Edit DBEdit, Label 의 갱신 또는 재생성, 수정 choco-milford 749 2003/05/25
32538     Re:[질문]동적 생성 Edit DBEdit, Label 의 갱신 또는 재생성, 수정 바다내음 700 2003/05/26
25750     Re:[질문]동적 생성 Edit DBEdit, Label 의 갱신 또는 재생성, 수정 skjoon 1039 2003/05/26
25776         Re:Re:[자답]동적 생성 Edit 의 갱신 또는 재생성, 수정 choco-milford 1086 2003/05/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.