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
[3047] [답변] CKS7108/ [델파이] create 메소드에 대해서...
grcsb [ ] 1250 읽음    1998-05-31 01:55
아래 유수님이 충분히 답변을 해주셨지만..
(음.. 한 발 늦었다..)
질문하신 분이 초보라 이신거 같아서^^
도움이 되실것 같아 조금 보충을 합니다..

   Graph : array[0..10] of TGraphicControl;
   mypen : Tpen;

여기서 Graph와 MyPen를 Class라고 하지여..
Class란 Object를 가르키는 이정표라고 표현하면 될거 같아여..
만약 서울에서 인천을 가려고 하면..
고속도로에 수많은 이정표가 인천의 방향을 가리키지만..
인천은 하나이지여..
그래서 이정표 하나가 더 생겼다고 해서..
인천을 더 만들 필요는 없자나요??

Class의 Create 메소드를 실행하면..
메모리에 Object를 형성하고..  (메모리 할당)..
Class변수는 그 메모리의 위치를 가르키게 되지요..

여기서 질문하신 내용으로 돌아가 보면..
이미 TShape 콤포넌트를 폼위에 놓았다면..
이미 TShape에 해당하는 양의 메모리가 할당됨과 동시에..
해당 콤포넌트 이름은 그 메모리 위치를 가르키게 되요..

아래와 같은 경우를 생각해 볼까요??
  Graph[0]:= Shape1;
이렇게 되면 Graph[0]와 Shape1이 동시에..
해당 콤포넌트에 의해 할당된 메모리 영역을 가르키게 되지여..

무슨책을 보시는 지 모르지만..
그 책의 의도는 이러한 것 같아요..
배열을 이용해서 콤포넌트를 대체하는 것은 다음과 같은 이점이 있어요..

Case 1. 배열을 사용하지 않는 경우
  Begin
    Shape1.Visible:= False;
    Shape2.Visible:= False;
    Shape3.Visible:= False;
    Shape4.Visible:= False;
  End;

Case 2. 배열을 사용하는 경우
  Var
     Loop : Integer;
  Begin
    For Loop:= 1 to 4 do TShape(Graph[Loop]).Visible:= False;
  End;

물론 한 번은 배열에 대응을 시켜주어야 하지만..
콤포넌트를 순서대로 자주 호출해야하는 경우라면..
배열을 사용하시는 것이 휠씬 용이하겠지여??

From 류..




+ -

관련 글 리스트
3047 [답변] CKS7108/ [델파이] create 메소드에 대해서... grcsb 1250 1998/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.