Q&A

  • 동적 생성한 컴포넌트안에 컴포넌트
동적 생성한 컴포넌트안에 컴포넌트를 생성하는 방법좀 알려주세요

부탁합니다.

ex)패널을 동적 생성한다음 그 동적생성된 패널안에 에디트나 레이블을 생성하고 싶습니다.
어떻게 해야하나요?

ㅠ.ㅠ
1  COMMENTS
  • Profile
    연기훈 2003.10.14 02:46
    제가 진행하고 있는 프로그램중 동적 생성 부분문 복사해봤습니다.

    참조하시길..

    procedure TfrmMRD100.Proc_SetItemCreate(iCnt:integer);
    var
       i : integer;
    begin

       if SelITEM >= 0 then begin
          arITEM[SelITEM].PNLMain.Color := clBtnFace;
       end;

       sclb_Grid.Visible := False;

       SetLength(arITEM, iITEMCnt + iCnt);

       i        := iITEMCnt;
       SelITEM  := -1;
       iITEMCnt := Length(arITEM);

       while i < iITEMCnt do begin
          Inc(i);

          with arITEM[i - 1] do begin
             /////////////////
             //  pl_Item 생성
             PNLMain := TPanel.Create(sclb_Grid);
             with PNLMain do begin
                Align       := alTop;
                BevelInner  := bvNone;
                BevelOuter  := bvRaised;
                Ctl3D       := False;
                Caption     := '';
                ParentFont  := True;
                Height      := 30;
                Top         := (i - 1) * 30;
                Left        := 0;
                TabOrder    := iITEMCnt;
                TabStop     := True;
                Visible     := True;
                Parent      := sclb_Grid;
                Tag         := i + 1;

                // 이벤트 정의
                OnClick    := Proc_PNLClick;
                OnEnter    := Proc_PNLClick;
             end;

             ///////////////////
             //  Txt_PPROD 생성
             EdtCODE := TEdit.Create(PNLMain);
             with EdtCODE do begin
                Left        := 20;
                Top         := 6;
                Width       := 100;
                Height      := 19;
                Color       := $00F0C89F;
                Ctl3D       := False;
                ParentCtl3D := False;
                ReadOnly    := True;
                TabOrder    := 1;
                TabStop     := True;
                Tag         := i + 1;
                Text        := '';
                Visible     := True;
                Parent      := PNLMain;

                // 이벤트 정의
                OnChange    := TxtCODEChange;
                OnClick     := TxtEnter;
                OnEnter     := TxtEnter;
                OnExit      := TxtCODEExit;
                OnKeyDown   := TxtKeyDown;
             end;

             ///////////////////
             //  bt_PCODE 생성
             BtnCODE := TSpeedButton.Create(PNLMain);
             with BtnCODE do begin
                Left        := 120;
                Top         := 6;
                Width       := 19;
                Height      := 19;
                Tag         := i + 1;
                Visible     := False;
                Parent      := PNLMain;
                Glyph       := bt_PROD.Glyph;

                // 이벤트 정의
                OnClick     := BTCODEClick;
             end;

             ///////////////////
             //  Txt_PDESC 생성
             EdtDESC := TEdit.Create(PNLMain);
             with EdtDESC do begin
                Left        := 145;
                Top         := 6;
                Width       := 220;
                Height      := 19;
                Color       := $00E1FFFF;
                Ctl3D       := False;
                ParentCtl3D := False;
                ReadOnly    := True;
                TabOrder    := 2;
                TabStop     := False;
                Tag         := i + 1;
                Text        := '';
                Visible     := True;
                Parent      := PNLMain;

                // 이벤트 정의
                OnClick     := TxtROEnter;
                OnEnter     := TxtROEnter;
             end;

             ///////////////////
             //  Txt_PDATE1 생성
             EdtTDT1 := TMaskEdit.Create(PNLMain);
             with EdtTDT1 do begin
                Left        := 405;
                Top         := 6;
                Width       := 120;
                Height      := 19;
                Color       := $00F0C89F;
                Ctl3D       := False;
                EditMask    := '9999-99-99;0;_';
                ParentCtl3D := False;
                ReadOnly    := True;
                TabOrder    := 3;
                TabStop     := True;
                Tag         := i + 1;
                Text        := '';
                Visible     := True;
                Parent      := PNLMain;

                // 이벤트 정의
                OnClick     := TxtEnter;
                OnEnter     := TxtEnter;
                OnExit      := TxtDATEExit;
                OnKeyDown   := TxtKeyDown;
             end;

             ///////////////////
             //  Txt_PTATE2 생성
             EdtTDT2 := TMaskEdit.Create(PNLMain);
             with EdtTDT2 do begin
                Left        := 595;
                Top         := 6;
                Width       := 120;
                Height      := 19;
                Color       := $00F0C89F;
                Ctl3D       := False;
                EditMask    := '9999-99-99;0;_';
                ParentCtl3D := False;
                ReadOnly    := True;
                TabOrder    := 4;
                TabStop     := True;
                Tag         := i + 1;
                Text        := '';
                Visible     := True;
                Parent      := PNLMain;

                // 이벤트 정의
                OnClick     := TxtEnter;
                OnEnter     := TxtEnter;
                OnExit      := TxtDATEExit;
                OnKeyDown   := TxtKeyDown;
             end;

             ///////////////////
             //  lb_DT_WV 생성
             LbDT_WV := TLabel.Create(PNLMain);
             with LbDT_WV do begin
                Left        := 555;
                Top         := 6;
                Width       := 10;
                Height      := 19;
                AutoSize    := False;
                Caption     := '~';
                Tag         := i + 1;
                Visible     := True;
                Parent      := PNLMain;
             end;

             ///////////////////
             //  Txt_PTQTY 생성
             EdtTQTY := TMaskEdit.Create(PNLMain);
             with EdtTQTY do begin
                Left        := 755;
                Top         := 6;
                Width       := 120;
                Height      := 19;
                Color       := $00F0C89F;
                Ctl3D       := False;
                EditMask    := '';
                ParentCtl3D := False;
                ReadOnly    := True;
                TabOrder    := 5;
                TabStop     := True;
                Tag         := i + 1;
                Text        := '';
                Visible     := True;
                Parent      := PNLMain;

                // 이벤트 정의
                OnClick     := TxtEnter;
                OnEnter     := TxtEnter;
             end;

          end;
       end;

       sclb_Grid.Visible := True;
    end;


    • [ROOKIE]
      2003.10.15 01:20
    • 최용일
      2003.10.15 01:43
      안녕하세요. 최용일입니다. 속성창에서 폼의 OnCloseQuery이벤트를 만들어서 아래와 같이 코딩해보세요....
    • 미로
    • 2003.10.14 20:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.10.15 01:39
      안녕하세요. 최용일입니다. 변환하는 컴포넌트 안에 Encode/Decode알고리즘이 다 들어있습니다. 안그러...
    • 이추형
      2003.11.11 20:08
      가장 쉬운 방법은 오라클의 언어 설정을 한글로 하시면 되고요 어렵다면 에러 처리시 글로벌변수로 에러별...
    • 연기훈
      2003.10.15 02:16
      어떤걸 출력하는 건지... QREPORT 로 작성한 레포트인지 다이렉트 출력인지... 어떤 종류의 출력...
    • 조지연
    • 2003.10.14 02:47
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 연기훈
      2003.10.14 03:01
      Object Inspector 창에서 Events 창을 확인해보세요 Form 이벤트요.. 거기 OnClose 에 FormClose가 ...
    • 조지연
      2003.10.14 03:09
      네... 정상적으로 연결되어있답니다. 물론 확인해 봤구여... 지우고 다시 만들어 보기도 했거든요... ...
    • 윤수아
      2003.10.21 01:17
      정확히 어떤 경우인지 모르겠는데요... 혹시 MainForm이 있고 AForm이 있는 경우에... 프로그램 종료시 M...
    • 성더기
      2003.10.17 00:47
      답변이 될런지는 모르겠습니다만.. 혹시 formCreate에서 이벤트를 호출하시지는 않으셨지요 Create에서...
    • midaskpp
    • 2003.10.14 02:03
    • 3 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2003.10.14 19:23
      function GetOSInfo: string; var   Platform: string;   BuildNumber: integer; ...
    • KDDG_ZZOM
      2003.10.14 18:59
      unit Unit1; interface uses   Windows, Messages, SysUtils, Classes, Graphics, Contro...
    • midaskpp
      2003.10.15 23:12
      님 감쏴합니다.. [냉무]
    • 이승훈
    • 2003.10.14 01:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김상우
      2003.11.27 18:59
      인디 FTP 컴포넌트를 사용하세요. 인디FTP 컴포넌트의 ChangeDir('/test') 를 하신후 List(AFiles, ...
    • 연기훈
      2003.10.14 02:46
      제가 진행하고 있는 프로그램중 동적 생성 부분문 복사해봤습니다. 참조하시길.. procedure TfrmMRD1...
    • 홍선영
      2003.10.16 02:29
      해결했습니다. 방법은 델파이에서는 from DB명::테이블명 입니다. ㅋㅋ : 을 하나 더 추가해야 ...
    • 살며배우며
      2003.10.14 07:27
      참고만 하세요 만약 오라클이라면 DB LINK를 사용하면 되지 않을까요? A DB에서 B DB로 링크를 걸고...
    • 홍선영
      2003.10.14 19:04
      음.. 답변 감사합니다. 그런데..현재 환경은 informix 입니다. 오라클에서는 그런 기능이 있군요.. i...
    • 살며배우며
      2003.10.15 06:50
      저도 인포믹스는 써보지 않아서 잘모르겠네요 인터넷에 찾아보니까 그런기능을 하는 명령어가 있는듯 ...
    • Galaxy
      2003.10.14 03:01
      안녕하세요 수고 많습니다. SQL EXplore에서 Select * From tableName Select * From Corder wher...
    • 홍선영
      2003.10.14 03:24
      음..답변은 잘 봣습니다. 그런데.. 제가 질문한 의도와는 빗나간 듯 합니다. 제가 궁금한건...
    • 김유빈
    • 2003.10.13 23:45
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 강형철
      2003.10.13 23:29
      일단 질문사항이 있으면 먼저 물어보지 마시고 검색을 해봅시다... 그래도 없을 경우에는 질문을 ^^ 팁...
    • [ROOKIE]
      2003.10.14 21:19
      여러가지 방법이 있겠지만... 저는 이렇게 했네요. var    submenu : TMenuItem; begin &nb...
    • 김현석
    • 2003.10.13 20:20
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김수현
    • 2003.10.13 19:28
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2003.10.13 21:01
      OnDrawCell이던가? 할튼 그런 이벤트에 코딩을 하셔야 할거 같습니다 그냥은 힘들구요.. 뭐 가능하시다...
    • 김수현
      2003.10.14 04:11
      만약 리얼그리드나 퀀텀그리드를 사용하게 되면 확실히 가능한건지.. 그리고 그럴경우 Rave Report상에 ...
    • 성더기
      2003.10.17 00:33
      Rave에서는 잘모르겠습니다.. 제가 Rave를 사용해보지를 않아서..^^ 그리드와 Rave와는 별도로 동작하...
    • 구니
    • 2003.10.13 13:51
    • 2 COMMENTS
    • /
    • 0 LIKES
    • [ROOKIE]
      2003.10.14 21:21
      아마 두번째 인자가 기다리는 시간을 세팅하는 부분일텐데요? -1 : 무작정 기다리기? 5000 : 5초동안 ...
    • 구니
      2003.10.15 03:32
      감사합니다.
    • 박국희
    • 2003.10.13 03:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2003.10.13 05:35
      Database에는 여러 종류가 있습니다. 1. 주로 1대의 PC에서만 1사용자가 접속하는 종류 2. 여러 PC에서 ...
    • 박국희
      2003.10.13 17:22
      아~ 그렇구나~ 답변 주셔서 넘 감사드려요.. 전 제가 뭘 잘못한줄 알고 몇시간동안 계속 하면서 속만 끓...
    • 연기훈
      2003.10.14 03:03
      델파이 6.0에서 착성된 소스네요.. 지금 제가 7.0으로 작성한 파일 보니 [FileVersion] Version=7....
    • goodlsw
    • 2003.10.13 03:09
    • 0 COMMENTS
    • /
    • 0 LIKES