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

델파이 Q&A
Delphi Programming Q&A
[14644] Re:컴포넌트를 못찾아요 이유를 모를겠습니다. 좀....
gomsun2 [vhrvnd723] 1911 읽음    2013-04-05 17:10
안녕하세요 따랑님 :) 오늘 두번이나 뵙네요.

팁, 트릭 란에 올리신 질문은 삭제 해주시고요,

답변입니다.

파괴를 하는 루틴에서는 looping 할 때 역순으로 해야 합니다.
5개의 컴포넌트를 찾아 파괴하는 시나리오를 생각해 보면

각각의 인덱스가 아래와 같이 있다고 가정하고,
0, 1, 2, 3, 4

파괴를 위한 루핑을 시작합니다.
i 는 0 일때 1번 돌면
0, 1, 2, 3

i 는 1 일때 2번 돌면
0, 1, 2

i 는 2 일때 3번 돌면
0, 1
문제가 발생합니다.

때문에 리스트(Components)에 담긴 인스턴스를 파괴할려면
for i := ComponentCount - 1 down 0 do
beign
  // Do destory Instance
end;

와 같이 작업하셔야 합니다.

즐코하세요 :)

따랑 님이 쓰신 글 :
: 안녕하셔요
: 컴포넌트를 Button,Edit,Label등을 반목하여 생성하여 ㅅ해제후 또 생성하는 작업입니다
: 생성과 해제가 반복되는 작업입니다.
: 그런데 같은 컴포넌트를 찾아서 해제하는 작업에 문제가 있습니다.
: 부탁드립니다.
: 소스는 아래와 같습니다.
:
:        For i:=0 to Self.ComponentCount-1  Do Begin
:             If      (Pos('aSend_'  ,TButton(Self.Components[i]).Name)<>0) Or
:                     (Pos('aDelete' ,TButton(Self.Components[i]).Name)<>0) Then TButton(Self.Components[i]).Free
:             Else If (Pos('aEdit_'  ,TEdit  (Self.Components[i]).Name)<>0) Then TEdit  (Self.Components[i]).Free
:             Else If (Pos('aMemo_'  ,TMemo  (Self.Components[i]).Name)<>0) Then TMemo  (Self.Components[i]).Free
:             Else If (Pos('aLabel_' ,TLabel (Self.Components[i]).Name)<>0) Then TLabel (Self.Components[i]).Free
:             Else If (Pos('aShape_' ,TShape (Self.Components[i]).Name)<>0) Then TShape (Self.Components[i]).Free
:             Else If (Pos('aImage_' ,Timage (Self.Components[i]).Name)<>0) Then Timage (Self.Components[i]).Free;
:         End;
:     

+ -

관련 글 리스트
14643 컴포넌트를 못찾아요 이유를 모를겠습니다. 좀.... 따랑 1893 2013/04/05
14644     Re:컴포넌트를 못찾아요 이유를 모를겠습니다. 좀.... gomsun2 1911 2013/04/05
14645         Re:Re:컴포넌트를 못찾아요 이유를 모를겠습니다. 좀.... 따랑 1714 2013/04/09
14652             Re:Re:Re:컴포넌트를 못찾아요 이유를 모를겠습니다. 좀.... 별을보라 1887 2013/04/11
14654                 Re:Re:Re:Re:또다른 생성된 컴포넌트 질문입니다. 부탁드립니다. 따랑 1828 2013/04/12
14655                     Re:Re:Re:Re:Re:또다른 생성된 컴포넌트 질문입니다. 부탁드립니다. gomsun2 2567 2013/04/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.