Q&A

  • MDI 내의 Frame에 EditBox 생성 가능한가요 ?
MDI 폼으로 3개의 Frame를 사용하여 폼을 만들었습니다.

그런데 ListBox를 Click 하면 3번째 Frame에 EditBox와 Label 을

동적으로 생성하려고 합니다.(약 30~50 개 정도로)

이런게 가능한지 가능하다면 어떤 방법으로 가능한지

알고 계신 분의 답변 부탁드립니다.



반드시 3번째 Frame에 생성해야 합니다.

2  COMMENTS
  • Profile
    하얀까마귀 2001.11.28 04:03
    안녕하세요 하얀까마귀 입니다.



    3번째 프레임든 폼이든 상관없습니다.



    프로그래밍은 아마두 프레임 내에 생성하는 거니깐



    public 으로 프레임 내에 함수하나 만들어 주시는게 좋겠죠?



    // 프레임 내의 함수라고 보구요..

    procedure TFrame3.CreateEditBox( iLeft, iTop, iWidth,iHeight, iRow, iCol, iCount : Integer );

    const

    coWidGap = 10;

    coHidGap = 10;

    var

    i,j, fCount : Integer;

    fEditBox : TEdit;

    begin

    fcount := 0;

    for i := 1 to iRow do

    begin

    for j := 1 to iColumn do

    begin

    Inc(fCount);

    if fCount > iCount then Exit;



    // 에디트를 생성합니다.

    fEditBox := TEdit.Create( self );

    // 프레임을 부모로 주어야 겠죠?

    fEditBox.Parent := self;

    // 이름 지정해주시구요. 지정하지 않으면 다시 쓸수 없겟죠?

    // 배열에다가 포인터를 넣어두시는게 좋겠죠..

    fEditBox.Name := 'EditBox' + intToStr(fcount);



    // 위치값을 결정해주시고

    fEditBox.Left := iLeft + ( ( j - 1 ) * (coWidGap + iWidth ) );

    fEditBox.Top := iTop + ( ( i - 1 ) * (coHidGap + iHeight) );

    fEditBox.Width := iwidth;

    fEditBox.Height := iHeight;

    // 에디트 박스내는 비워둡니다.

    fEditBox.Text := '';



    // 당연히 이건 해야 겠죠?

    fEditBox.Visible := True;

    fEditBox.Enabled := True;

    fEditBox.TabOrder := fCount;

    fEditBox.TabStop := True;

    end;

    end;

    end;



    대충 한번 만들어 봤는데 에러 없을지 모르겠네요. 혹시 오타나 에러있으면



    이해해주시구요.. 동적생성 안해보신 것 같아서 그냥 하나 맹글어 봤슴다.



    즐거운 시간 되세요..



    - 하얀까마귀 -





    초보 wrote:

    > MDI 폼으로 3개의 Frame를 사용하여 폼을 만들었습니다.

    > 그런데 ListBox를 Click 하면 3번째 Frame에 EditBox와 Label 을

    > 동적으로 생성하려고 합니다.(약 30~50 개 정도로)

    > 이런게 가능한지 가능하다면 어떤 방법으로 가능한지

    > 알고 계신 분의 답변 부탁드립니다.

    >

    > 반드시 3번째 Frame에 생성해야 합니다.

  • Profile
    권대웅 2001.11.28 02:13
    초보 wrote:

    > MDI 폼으로 3개의 Frame를 사용하여 폼을 만들었습니다.

    > 그런데 ListBox를 Click 하면 3번째 Frame에 EditBox와 Label 을

    > 동적으로 생성하려고 합니다.(약 30~50 개 정도로)

    > 이런게 가능한지 가능하다면 어떤 방법으로 가능한지

    > 알고 계신 분의 답변 부탁드립니다.

    >

    > 반드시 3번째 Frame에 생성해야 합니다.



    var

    fs : TLabel; // 또는 에디트 박스

    begin

    fs := TLabel.Create(Self);

    fs.Parent := '부모객체'; //여기에 3번째 프레임 명을 넣으세요!

    fs.Name := '레이블명';

    fs.기타속성 설정

    ...



    end



    사용은...

    var

    fs : TLabel; //사용자가 만든 프레임

    begin

    fs := TLabel('레이블명');

    fs.Caption := 'zzzzz';

    .....

    end;



    이렇게 해 보세요!

    그럼..

    즐거운 하루 보내세요!