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
[3897] Re:Re:[질문]동적생성한 컴포넌트를 동적으로 삭제하려면..
권윤진 [] 4308 읽음    2000-08-07 00:00
박지훈.임프 님이 쓰신 글 :
: 권윤진 님이 쓰신 글 :
: : 안녕하세여.. C++빌더 초보입니다..
: :
: : 컴포넌트를 동적으로 여러개를 생성했습니다.. 그런데 삭제를 하려니.. 문제점이 들어나네여..
: : 생성된 컴포넌트와 함께 라디오버튼을 생성해주고.. 삭제하고자 할때 라디오버튼에 클릭을한후에 삭제버튼을 누르면 그 컴포넌트(선택된 라디어 버튼 포함)를 삭제하고자 하는데여..
: : 삭제 버튼을 눌렀을때.. 어떤 리디오 버튼이 클릭이 되었는지 판단할 수가 없네여.. for문을 사용하여 순차적으로 체크가 되었는지 검사하면.. 삭제하고자 하는 컴포넌트 이전의 컴포넌트가 삭제되어 있다면.. 물론 엑세스 바이얼레이션이 나타나겠져.. 그래서 이 방법은 부적절 한거 같구여..
: : for문 사용하는거 말구 다른 방법이 없는지.. 알고 싶습니다..  델파이에서는 삭제하려구 선택한 컴포넌트의 모든 속성을 새로운 거푸집같은걸(물론 같은 타입으로 만들겠져)만들어서 거기에 넣은다음(라디오박스를 클릭할때) 삭제시 그 컴포넌트를 삭제하는 방법이 있는데.. 빌더에서는 잘 안되는군여.. 꼭~!!! 알아야 합니다.. 임프님.. 꼭! 부탁합니다.. 
: :
: : 글이 이해가 되셨는지 모르겠네여..  잘 이해가 가시지 않는다면.. 다시 정리해서 올리겠습니다.. 응답 꼭! 부탁드립니다..
:
:
:
: 임펠리테리입니다.
:
: 죄송합니다만 잘 이해가 안됩니다. 라디오버튼을 눌렀을 때 이미 동적으로 생성했던 컴퍼넌트가 삭제되었을 가능성에 대해 말씀하셨는데 왜 그렇게 생각하시는지요. 좀더 구체적으로 설명해주시는게 좋겠네요. 해당 부분의 코드를 곁들이면 더 좋겠구요. 그리고, 라디오버튼을 쓰셨다고 하셨는데, 제 생각엔 라디오그룹이나 리스트박스 등을 쓰는게 더 적절하겠네요.
:
: 그럼 이만...


좀더 자세히 질문을 올림니다..
기본적으로 메인폼에는 두개의 버튼이 존재 합니다.. 하나는 에디트박스를 동적으로 만드는 버튼이고 다른 하나는 만들어진 에디트박스중에서 사용자가 선택한 에디트박스를 삭제하는 버튼입니다. 생성버튼을 여러번 클릭하면 클릭된 숫자 만큼의 에디트상자가 메인폼위에 일정간격으로 생성됩니다. 이때.. 삭제하고자 할때 어떤 에디트상자를 삭제할지를 결정하기 위해 에디트박스를 생성할때 라이오 버튼을 쌍으로 생성합니다. 그럼 특정에디트 상자를 삭제하고자 할때 쌍으로 존재하는 라디오 버튼을 클릭을하고 삭제 버튼을 클릭하면 선택된 라디오버튼과 쌍으로 존재하던 에디트 상자도 삭제되는 로직을 구현하고자 하는 것입니다.
이때 생성은 순차적으로 하면 되는데.. 삭제시에.. 선택된 컴포넌트를 삭제하려니까.. 문제가 생기더군여..

void __fastcall TForm1::DeleteButtonClick(TObject *Sender)
{
    // Access Violation 발생... 아래의 for문은 사용할 수 없을것같네여..
    // 이 for구문 대신 사용할 삭제방법을 알고 싶습니다.   
    for(int i = 0; i < MAX_NUM; i++)
    {
        // RadioButton을 순차적으로 검색하여 체크된 것을 찾아 삭제한다.
        if(RadioArray[i]->Checked == true)
        {
            delete RadioArray[i];
            break;
        }
    }
}   


+ -

관련 글 리스트
3891 [질문]동적생성한 컴포넌트를 동적으로 삭제하려면.. 권윤진 3612 2000/08/07
3894     Re:[질문]동적생성한 컴포넌트를 동적으로 삭제하려면.. 박지훈.임프 4118 2000/08/07
3897         Re:Re:[질문]동적생성한 컴포넌트를 동적으로 삭제하려면.. 권윤진 4308 2000/08/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.