Q&A

  • 2차원 동적 배열을 어찌할지.......
2차원 동적배열을 사용하려 합니다........

[i,j].........[n,5] 이런식으로....

한쪽은 크기가 정해져 있고.... 한쪽 방향은 n개로 늘어 날수 있어서요...

이럴때 사용하는게 2차원 동적배열이겠지요?

정확한 사용법을 잘 모르겠네요.....

선배님들에게 조언을 부탁 드리겠습니다.
4  COMMENTS
  • Profile
    최형경 2002.08.24 19:21

    먼저 2차원 동적배열은 Run Time시에 배열의 크기가 결정되기 때문에

    사용후 메모리에서 해제하는것도 중요합니다..

    먼저
    배열서언.
    Var
       TestArray : Array of Array of Integer;
       iFor : Integer;

    배열크기 설정.
    SetLength(TestArray, 3);

    For iFor := 0 to 2 do
       begin
       SetLength(TestArray[iFor], 2);
       end;

    ///
    그럼 아래와 같은 배열이 만들어 집니다.

           TestArray[0][0], TestArray[0][1]
           TestArray[1][0], TestArray[1][1]
           TestArray[2][0], TestArray[2][1]


    배열해제.
    If TestArray <> nil then
       Finalize(TestArray);



  • Profile
    김용일 2002.08.24 19:04
    배열을 쓰려는 이유는 대강 짐작이 갑니다.
    하지만 대개의 경우 가변적일 경우에는 TList 같은 것을 많이 씁니다.
    예컨데
    Type
      PScore = ^TScore;
      TScore = record
         Han,
         Eng,
         Mat: Integer;
      end;

    var
      ScoreList: TList;
            :

    이렇게 포인털를 써서 TList에 값을 넣고 변경하는 방법을 많이 씁니다.
    델파이에서 클래스를 잘 사용하지는 않지만, 잘 아시다시피 클래스가 아주 잘 되어 있어 사용만 잘 한다면 좋은 프로그램을 만드실 수 있으리라 봅니다.

    참고로 동적 배열 쓰는 방법은 대충 이렇게 하면 될겁니다.
    uses
       System;

    var
       Score: Array of Integer;
                  :

    procedure ....
    begin
       SetLength(Score, 120);
       // 괄호안의 우측이 길이 즉, 배열의 갯수를 지정하는 것입니다.
       // 다만, 배열의 수는 255개만 가능합니다.
                 :
    end;

    동적배열도 가능하지만 저 라면 이 방법을 쓰겠습니다.
    질문과 약간 빚나간 답을 드렸습니다만, 이 방법도 연구해 보실 필요는 있을듯 합니다.


  • Profile
    최용일 2002.08.24 19:03
    안녕하세요. 최용일입니다.

    아래와 같은식으로 선언해서 사용하세요...

    type
        T2DArray = array[0..N] of array of 변수형; // N = 고정
    type
        T2DArray = array of array[0..N] of 변수형; // N = 고정

    동적 배열은 사용하시기 전에 SetLength를 이용해서 반드시 메모리 할당 받으셔서 사용하시구요...

    ^^ 항상 즐코하세요...

  • Profile
    타락천사 2002.08.24 23:32
    내공이 하늘을 찌르시는 군여... 눈 꿈뻑꿈뻑..

    후다닥~~~

    • 최석기
      2002.08.24 21:39
      그냥 KeyPress에서 Key 값을 죽여버리면 될꺼 같은데요. procedure TForm1.RxSpinEdit1KeyPress(Sender:...
    • ㄴ ㅏ ㅁ ㅑ
      2002.08.24 22:26
    • 최용일
      2002.08.24 22:49
      안녕하세요. 최용일입니다. 말그대로 정의되어 있지 않은 함수를 쓰신겁니다. U_GR에 그 함수가 정의...
    • 윤수
    • 2002.08.24 20:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.08.24 22:52
      안녕하세요. 최용일입니다. 컨트롤을 나열한다면 EnumChildWindows함수를 사용하셔도 됩니다. 컴포넌...
    • 하얀까마귀
      2002.08.25 12:10
      안녕하세요 하얀까마귀 입니다. 리포트나 디비는 한지 좀 되어서.. 바뀌었으면 어쩌나 하는생각이 드네...
    • 나옹이
    • 2002.08.24 18:46
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최형경
      2002.08.24 19:21
      먼저 2차원 동적배열은 Run Time시에 배열의 크기가 결정되기 때문에 사용후 메모리에서 해제하는것도...
    • 김용일
      2002.08.24 19:04
      배열을 쓰려는 이유는 대강 짐작이 갑니다. 하지만 대개의 경우 가변적일 경우에는 TList 같은 것을 많이 ...
    • 최용일
      2002.08.24 19:03
      안녕하세요. 최용일입니다. 아래와 같은식으로 선언해서 사용하세요... type    &nb...
    • 타락천사
      2002.08.24 23:32
      내공이 하늘을 찌르시는 군여... 눈 꿈뻑꿈뻑.. 후다닥~~~
    • 짝궁디
    • 2002.08.24 13:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2002.08.24 20:22
      클라이언트를 델파이로 구축한다(고 쓰신건 아니지만, 그렇게 추측.. ^^;)면, 클라이언트는 MS의 OS가 적재...
    • 까마귀
      2002.08.24 11:07
      안녕하세요. 까마귀입니다. 그냥 IntTostr(...) 하시면 되는데요. function IntToStr(Value: Integ...
    • 김용일
      2002.08.24 19:15
      이 경우에는 예외처리가 필요할 것 같군요. try     Memo1.Lines.Add(IntToStr(St...
    • 까마귀
    • 2002.08.24 09:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2002.08.24 23:30
      안녕하세여. 타락임다.. 음.. 만약 제가 가튼 작업을 해야 한다고 가정하고 말해볼께여. 우선 TriveV...
    • 조희문
    • 2002.08.24 06:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.08.24 13:27
      안녕하세요 하얀까마귀 입니다. 구현할려는게 뭔지 잘 모르겠네요.. 그냥 우편번호 검색 하는걸 하실...
    • 문성운
      2002.08.30 02:39
      코딩으로 아는게 먼지는 모르겠구요... 그..실행누르고..winipcfg누르면..자기 아이피 떠요.. 이게 아닌...
    • 임형호
      2002.08.24 07:29
      델파이 팁이나.. 자료실에 가면 현재 자신의 컴퓨터 아이피 알아내는 소스가 많을건데요. 음..고게 유동아...
    • vocallo
      2002.08.30 02:17
      indy client 소켓콤포넌트 하나 올리시구요.. uses 절에 IdStack 유닛 추가.. var userip : st...
    • 임상현
    • 2002.08.24 04:24
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이동현
    • 2002.08.24 03:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이채성
      2002.08.24 22:45
      제 생각엔 C빌더에서 ATL로 프로그램을 개발하고 이를 델파이와 링크하는 게 어떨까 생각하는데요....
    • 김해성
    • 2002.08.24 02:57
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 갈매기
      2002.08.24 04:15
      제가 알기로는 한글지원 안되는걸로 아는데요...
    • 임형호
      2002.08.24 07:34
      되고 안되고를 떠나서.. 한글로 필드명을 설정하는건 좋지 않습니다. 분명 사용하시다보면 불편하고..난처...
    • 하얀까마귀
      2002.08.24 13:17
      안녕하세요 하얀까마귀 입니다. 디비에 따라서 그리고 언어 설정을 하면 되기도 합니다만... MS-S...
    • 성대현
    • 2002.08.24 02:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.24 04:15
      hsr////////////////////////////////////////////////// CustomDraw를 이용해보세요 procedure TForm1.L...
    • YoungMan
      2002.08.24 19:31
      설정을 잘못하신거 같네요 어떤방식으로 접근한것인지 모르겠지만 mdb같은경우는 ado를 이용하는게 가장 ...
    • 홍성락
      2002.08.24 01:20
      hsr///////////////////////////////////////////////////////// ToolBar의 ToolButton말씀하시는거죠 그...
    • 홍성락
      2002.08.23 23:50
      hsr///////////////////////////////////////////////////// 혹시 동일 비율로 크기 변환 말씀하시나요? ...
    • 동규재
    • 2002.08.23 22:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.08.23 23:30
      hsr///////////////////////////////////////////////////////////// 둘다 읽기쓰기전용이라 닫은 후 사용...
    • 김현일
    • 2002.08.23 22:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 양상훈
      2002.08.24 11:10
         procedure TForm1.Button2Click(Sender: TObject); begin   LockWorkStation; ...
    • 김승형
      2003.01.31 01:27
      제로보드 쓰세요.. 돈두 안들고 엄청 좋아요... 지금 보시는 게시판도 제로보드로 꾸민 거예요... http:/...
    • 김영석
      2002.08.29 22:13