Q&A

  • 레코드형 배열에서...
<!--CodeS-->
type
  TRGRIDCOL = record
    CL_TIT_CPT   : string;      
    CL_WID       : integer;    
    CL_LVL       : integer;    
    CL_LV_IDX    : integer;    
    GRP_WID      : integer;    
    GRP_NO       : integer;    
  end;

rg_set_grp : array of TRGRIDGRP;



SetLength(rg_set_grp, 3);
<!--CodeE-->

이렇게 선언을 한 후
값을 집어넣을 때....

이벤트에서

<!--CodeS-->rg_set_grp := (('상품권번호', false, 2, false, 296, 2),
                        ('매출부분', false, 2 true, 788, 2) );
<!--CodeE-->


값을 넣으려하니 컴파일 에러가 나네요...

레코드형에서는 배열의 값을 넣는것 처럼 선언을 할 수 없나요?

4  COMMENTS
  • Profile
    소울해커 2008.03.18 02:28
    rg_set_grp := (('상품권번호', false, 2, false, 296, 2),
                            ('매출부분', false, 2 true, 788, 2) );

    변수 선언시 초기값을 지정하실려고 하시는건가요?
    아니면 값을 넣으려고 하시는 건지요?

    일단 변수 선언시 초기값 지정이라고 생각하겠습니다.

    1. 동적 변수는 변수 선언시 초기값 지정을 할 수 없습니다.
      말 그대로 동적으로 그 길이가 변하는데 초기값을 줄 순 없죠.
      rg_set_grp : array of TRGRIDGRP; 에는 초기값을 줄 수 없습니다.
      초기값이 아니라 기본값을 주고 싶으시다면 따로
      SetLength(rg_set_grp, 크기); 로 크기를 잡아 주시고 넣으셔야 합니다.
      rg_set_grp : array[0..1] of TRGRIDGRP; 이라면 초기값을 줄 수 있습니다.

    2. 집어넣을 값에도 문제가 있습니다.
    rg_set_grp := (('상품권번호', false, 2, false, 296, 2),
                            ('매출부분', false, 2 true, 788, 2) );

    여기서 보시면 위에 선언되있는 부분은 Integer로 잡으시고 두번이나 Boolean 값으로 넣으시는군요.

    CL_TIT_CPT   : string; = '상품권번호'
    CL_WID       : integer; = false
    CL_LVL       : integer; = 2
    CL_LV_IDX    : integer; = false
    GRP_WID      : integer; = 296
    GRP_NO       : integer; = 2

    CL_WID와 CL_LV_IDX의 값을 Boolean형으로 바꾸시던지
    두 항목에 들어갈 값을 0, 1로만 제한해서 Ord(True), Ord(False)로 집어넣으시던지 하셔야 할겁니다.

    3. 지역변수에선 초기값을 지정할 수 없습니다.
    유닛 전역에서 사용되는 변수에만 할당이 가능합니다.

    4. 따로 한몫에 값을 주지않고도

    rg_set_grp[0].CL_TIT_CPT := '상품권번호';
    rg_set_grp[0].CL_WID := Ord(false);
    rg_set_grp[0].CL_LVL := 2;
    rg_set_grp[0].CL_LV_IDX := Ord(false);
    rg_set_grp[0].GRP_WID := 296;
    rg_set_grp[0].GRP_NO := 2;

    이런식으로 넣고 쓰셔도 됩니다. (괜한 참견일려나..;)


  • Profile
    장경석 2008.03.18 03:04
    말씀하신데로
    변수형이 잘못지정이 되었는데요...

    레코드형에서 멤버를 지정하지 않고 동적배열로 선언하고 길이도 지정해주고 다 한 후에

    배열값을 주는 것처럼

    array변수 := ( (1행의 레코드멤버1의 값, 1행의 레코드멤버2의 값,.., 1행의 레코드멤버n의 값),
                         (2행의 레코드멤버1의 값, 2행의 레코드멤버2의 값,.., 2행의 레코드멤버n의 값),
                         (3행의 레코드멤버1의 값, 3행의 레코드멤버2의 값,.., 3행의 레코드멤버n의 값))

    이렇게 하고 싶은데 델파이에서는 할 수 없나요...





  • Profile
    소울해커 2008.03.18 04:08
    값을 한번에 넣고 싶으시다는 뜻인듯 하군요.

    동적 배열로 선언된 레코드 구조체에선 그렇게 안되는 걸로 알고 있습니다.
    (방법이 따로 있는데 제가 모르는 것 일 가능성이 높아요 ㅎㅎ;)

    귀찮으시더라도

    rg_set_grp[배열].CL_TIT_CPT := '상품권번호';
    rg_set_grp[배열].CL_WID := Ord(false);
    rg_set_grp[배열].CL_LVL := 2;
    rg_set_grp[배열].CL_LV_IDX := Ord(false);
    rg_set_grp[배열].GRP_WID := 296;
    rg_set_grp[배열].GRP_NO := 2;

    요런 형태로 값을 넣으세요.



  • Profile
    장경석 2008.03.18 18:37
    • 소울해커
      2008.03.19 19:22
      스샷에 표시된 부분 아래쪽 작업 영역 부분에 마우스 클릭해보세요. [텝1][텝2] I ̄ ̄ ̄ ̄ ̄ ̄ ̄ I I...
    • 강주현
      2008.03.19 19:58
      감사합니다. 해결되었습니다.
    • 최용일
      2008.03.19 05:25
      그냥 Look속성을 glClassic으로 변경하시면 똑같이 됩니다.
    • 소울해커
      2008.03.19 05:33
      헛... 그렇군요. 그동안 죽어라 ControlLook 만 봤었는데... 점점 바보가 되어가나 봅니다. 허허......
    • 강주현
    • 2008.03.19 01:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델코초
      2008.03.19 01:35
      DbGrid => DataSource => DataSet(Query) DataSource 연결되었는지 확인해 보시길....
    • 강주현
      2008.03.19 18:35
      답변감사합니다.... 도움많이 돼었습니다.
    • 양선호
    • 2008.03.19 00:54
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.18 21:36
      procedure TForm1.FormCreate(Sender: TObject); begin   Align := alTop;   Con...
    • 강정구
      2008.03.18 22:58
         소울해커님....감사합니다....이렇게 빨리 올려주시다니...정말 감사 합니다.   ...
    • 인치온
    • 2008.03.18 11:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.18 20:21
      원래 루틴 마다 값이 다르다고 그러네요. 네이버에서 '16bit CRC 값 구하기'로 검색해보세요.
    • 장경석
    • 2008.03.18 03:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.18 20:13
      동적생성하시면서 컬럼의 인덱스값이 변동된 걸 반영을 하셨는지요? Col[0], Col[1], Col[2] 이렇게 ...
    • 왕초보
    • 2008.03.18 02:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.18 20:09
      조금 다르게 생각을 해보심은 어떠실런지... Form1에 결과 값을 Form2에 넘겨주는게 아니라 Form1에...
    • 왕초보
      2008.03.18 22:34
      안녕하세요. 우선 답변 감사합니다. 알려주신 방법으로 했는데요. form1에서는 form2 생성하고, form2에서...
    • 소울해커
      2008.03.18 23:21
      옵션에서 Form2가 Available Form으로 되어있는지 확인하시구요. FormCreate에 말고 FormShow 에서 해보...
    • 김소연
    • 2008.03.18 01:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.18 19:57
      '행을 업데이트 할수 없습니다. 일부값이 마지막으로 읽은후에 바뀐것같습니다' 음... 컴퓨터 주제에 건...
    • 최용일
      2008.03.18 03:59
      <!--CodeS--> procedure TForm1.Button2Click(Sender: TObject); begin   IBQuery1.Clo...
    • 채기웅
    • 2008.03.17 22:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2008.03.18 00:01
      퀀텀그리드 버전이 어떻게되나요? 저두 퀀텀 쓰는데... 방식이 전혀 다르네요 ㅡㅡ;;;
    • 장경석
    • 2008.03.17 20:28
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.18 02:28
      rg_set_grp := (('상품권번호', false, 2, false, 296, 2),        &...
    • 장경석
      2008.03.18 03:04
      말씀하신데로 변수형이 잘못지정이 되었는데요... 레코드형에서 멤버를 지정하지 않고 동적배열로 선언...
    • 소울해커
      2008.03.18 04:08
      값을 한번에 넣고 싶으시다는 뜻인듯 하군요. 동적 배열로 선언된 레코드 구조체에선 그렇게 안되는 걸...
    • 장경석
      2008.03.18 18:37
    • 이정훈
    • 2008.03.15 20:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김춘경
      2008.03.16 11:16
      조인된 테이블은 RequestLive가 적용되지 않습니다. 만일 Paradox DB를 사용하신다면 DBEdit나 DBGrid ...
    • 이경애
    • 2008.03.14 21:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2008.03.15 01:35
      a 와 b의 관계는 있지만 c 와는 어떠한 테이블과도 관계가 없네요 현재 쿼리로는 c 테이블의 건수(check1 ...
    • 소울해커
      2008.03.14 21:23
      SELECT DISTINCT a.id,a.name,a.phone  FROM table1 AS a INNER JOIN table2 AS b  in...
    • 이정훈
    • 2008.03.13 22:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 일그니
      2008.03.14 01:33
      델파이 하위버전에서는 indyCompo로 배포되고... 요즘 버전에서는 아예 붙박이로 기본 컴포로 델파이...
    • 모영철
      2008.03.15 02:11
      ASP 쪽으로 가시면 많을거 같은데요.. 포스트 데이타로 보내는거네요.. http://cafe.naver.com/red1511...
    • 유승혁
    • 2008.03.13 20:07
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.03.13 02:19
      Zeos에서는 지원하지 않는것으로 알고 있습니다. Core Lab의 ODAC컴포넌트를 사용해보세요. http://crl...
    • 머문자리
      2008.03.13 18:59
      최용일님 답변 감사합니다. ODAC컴포넌트를 확인해봤습니다. 제가 찾고 있는것은 오픈소스로 알아보고 ...