Q&A

  • 폼 생성
안녕하세요

제가 초보라서 도움부탁드립니다. 여기는 지방이라서 서적이 많지 않아요.



form1에서 특정 field에서 값을 입력받으면 코드선택하는 새로운 화면이

생성되오 포커스가 새로이 생성된 폼으로 이동하는 겁니다.

간단하지만 처음 접하는 저에게는 급하므로 빨리 도움 부탁드립니다.

2  COMMENTS
  • Profile
    최영근 2000.12.03 18:05
    안녕하세요 ?



    제 경우를 말하자면.



    우선 어느 필드에서 새로 폼을 생성허는 방법을 두가지를 씁니다.

    하나는 그 필드의 onKeyDown 이벤트에서 원하는 값이 입력되면

    새로운 폼을 생성하고 포커스를 이동하는 방법이고요

    또 하나는 필드의 오른쪽에 버튼을 위치시키고

    그것을 클릭하면 새로운 폼을 생성하고 포커스를 이동하는 방법이지요.

    저는 주로 반드시 입력해야할 필드는 위의 방법을 씁니다.



    if Key = #13 then begin

    Key := #0;

    form2 := Tform2.Create(Self);

    try

    edit1 := form2.edit1;

    .... 필드값처리 루틴



    end;

    finally

    form2.Free;

    end;

    SelectNext(ActiveControl as TWinControl, True, True);

    end;



    이렇게 하시면,

    원래의 폼의 필드에서 특정 키가 입력되었을때

    새로운 폼이 형성되고, 새로운 폼에서 선택된 필드값이

    원래의 폼의 필드로 입력이 됩니다.



    도움이 되기를 바라며..

    그럼 이만.



    ===================================



    wbh wrote:

    > 안녕하세요

    > 제가 초보라서 도움부탁드립니다. 여기는 지방이라서 서적이 많지 않아요.

    >

    > form1에서 특정 field에서 값을 입력받으면 코드선택하는 새로운 화면이

    > 생성되오 포커스가 새로이 생성된 폼으로 이동하는 겁니다.

    > 간단하지만 처음 접하는 저에게는 급하므로 빨리 도움 부탁드립니다.

  • Profile
    황광일 2000.12.03 02:40
    그 필드의 OnKeyDown이나 OnKeyChar 이벤트에서 원하는 값이 입력되면...

    폼을 부르면 됩니다...



    저 같은 경우 Shift + Enter 키를 누르면 폼을 동적으로 생성하게 하는 방법을 주로 이용합니다...

    필드에 무조건 포커스가 들어온다고(OnEnter) 해서 무조건 코드윈도우가 뜬다면...

    프로그램에 익숙해진 사용자에게는 오히려 불편할 수 있기 때문입니다...

    그리고 모든 필드가 코드화면을 부르는 것은 아니고 코드내용도 다를 것이기 때문에...

    원하는 필드에디트의 OnKeyDown 이벤트 핸들러에서...



    if (Shift = [ssShift]) and (Key = VK_RETERUN) then

    begin

    // 원하는 폼을 동적으로 생성..하던지...

    // ShowModal 하고..ModalResult가 IDOK 이면... 처리...

    end;

    이렇게 해보십쇼...





    wbh wrote:

    > 안녕하세요

    > 제가 초보라서 도움부탁드립니다. 여기는 지방이라서 서적이 많지 않아요.

    >

    > form1에서 특정 field에서 값을 입력받으면 코드선택하는 새로운 화면이

    > 생성되오 포커스가 새로이 생성된 폼으로 이동하는 겁니다.

    > 간단하지만 처음 접하는 저에게는 급하므로 빨리 도움 부탁드립니다.