Q&A

  • mdi main폼 메뉴 같이 사용하는 방법
질문드립니다...

mainform: MDI 메인폼. 메인메뉴와 툴바에 스피드 버튼이 있다.

m1 :child 폼. 저장1 프로시저와 스트링그리드1 이 있다.

저장1 프로시저에서는 스트링그리드1의 내용을 저장

m2 :child 폼. 저장2 프로시저와 스트링그리드2 가 있다.

저장2 프로시저에서는 스트링그리드2의 내용을 저장



m1이 active 되어 있을때 mainform에서 저장 버튼을 클릭하면 m1의 저장1를 실행하고 m2가 active되어 있을시에는 저장2프로시저 를 실행한다.



위와같이 코딩을 하고 싶습니다.

어떻게 하면 좋은지요...

m1이 액티브되었을때

m1.저장1;

이렇게 하면요...

스트링그리드의 내용을 읽어오려할때 접근할 수 없다는 내용의 에러가 나거든요.



어떻게 해야 할까요???



2  COMMENTS
  • Profile
    하얀까마귀 2000.07.15 21:57
    안녕하세요 하얀까마귀 입니다..



    전 질문이 active된 폼을 찾는다던지 하는건줄 알았는데... 그건 다 하신것



    같네요...



    에러가 나는게 문제라면 해당 소스를 보여 주세요...



    스트링 그리드를 참조할 수 없다면 생성되지 않은것 아닌가???



    저장하는 부분과 Mdi Chile Form생성부분을 보여주시면 되겠네요..



    그럼.. 즐거운시간 되세요...



    - 초보 하얀까마귀 -





    질문이



    이은아 wrote:

    > 질문드립니다...

    > mainform: MDI 메인폼. 메인메뉴와 툴바에 스피드 버튼이 있다.

    > m1 :child 폼. 저장1 프로시저와 스트링그리드1 이 있다.

    > 저장1 프로시저에서는 스트링그리드1의 내용을 저장

    > m2 :child 폼. 저장2 프로시저와 스트링그리드2 가 있다.

    > 저장2 프로시저에서는 스트링그리드2의 내용을 저장

    >

    > m1이 active 되어 있을때 mainform에서 저장 버튼을 클릭하면 m1의 저장1를 실행하고 m2가 active되어 있을시에는 저장2프로시저 를 실행한다.

    >

    > 위와같이 코딩을 하고 싶습니다.

    > 어떻게 하면 좋은지요...

    > m1이 액티브되었을때

    > m1.저장1;

    > 이렇게 하면요...

    > 스트링그리드의 내용을 읽어오려할때 접근할 수 없다는 내용의 에러가 나거든요.

    >

    > 어떻게 해야 할까요???

    >

  • Profile
    parkisu 2000.07.16 00:28
    하얀까마귀 wrote:

    > 안녕하세요 하얀까마귀 입니다..

    >

    > 전 질문이 active된 폼을 찾는다던지 하는건줄 알았는데... 그건 다 하신것

    >

    > 같네요...

    >

    > 에러가 나는게 문제라면 해당 소스를 보여 주세요...

    >

    > 스트링 그리드를 참조할 수 없다면 생성되지 않은것 아닌가???

    >

    > 저장하는 부분과 Mdi Chile Form생성부분을 보여주시면 되겠네요..

    >

    > 그럼.. 즐거운시간 되세요...

    >





    >

    >

    > 질문이

    >

    > 이은아 wrote:

    > > 질문드립니다...

    > > mainform: MDI 메인폼. 메인메뉴와 툴바에 스피드 버튼이 있다.

    > > m1 :child 폼. 저장1 프로시저와 스트링그리드1 이 있다.

    > > 저장1 프로시저에서는 스트링그리드1의 내용을 저장

    > > m2 :child 폼. 저장2 프로시저와 스트링그리드2 가 있다.

    > > 저장2 프로시저에서는 스트링그리드2의 내용을 저장

    > >

    > > m1이 active 되어 있을때 mainform에서 저장 버튼을 클릭하면 m1의 저장1를 실행하고 m2가 active되어 있을시에는 저장2프로시저 를 실행한다.

    > >

    > > 위와같이 코딩을 하고 싶습니다.

    > > 어떻게 하면 좋은지요...

    > > m1이 액티브되었을때

    > > m1.저장1;

    > > 이렇게 하면요...

    > > 스트링그리드의 내용을 읽어오려할때 접근할 수 없다는 내용의 에러가 나거든요.

    > >

    > > 어떻게 해야 할까요???

    > >



    메인폼에 전역변수를 하나두시고 액티브되는 메인폼의 OnActivate이벤트에 연결합니다.

    각 폼에 Tag속성을 다른 값으로 주시면 어느 폼이 활성화 되었는지를 알 수 있겠군요.







    var

    Caller:Integer; //어느 폼이 활성화되었는지 체크하는 변수



    //메인폼의 OnActivate이벤트에는

    procedure TfrmMain.FormActivate(Sender: TObject);

    begin

    Caller:= TForm(Sender).Tag;

    end;



    //메인폼의 저장버튼 클릭시 처리는

    proceure TfrmMain.SaveBtnClick(Sender: TObject);

    begin

    case Caller of

    1: //m1의 내용 저장

    2: //m2의 내용 저장

    end;

    end;



    아니면 TMenuitem에 GroupIndex라는 속성이 있는데, 이것을 사용해 보시면 좋을 듯 싶군요. MDI에서는 차일드폼은 메인폼의 메뉴를 사용하게 되는데, 차일드폼에도 메뉴를 붙여놓고 GroupIndex를 메인폼의 메뉴의 GroupIndex와 같이 주면 메인폼의 메뉴가 차일드폼의 메뉴로 대체됩니다. 툴바도 마찬가지인것 같더군요.



    어케 도움이 되시는지...

    • 조헌철
    • 2000.07.25 06:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 괴델
      2000.12.29 00:37
      조헌철 wrote: > 폼 안에서 리얼플레이 실행시키려고 합니다.url은 더블클릭해서 쳐 넣었는데 > 그런데 ...
    • 고유진
    • 2000.07.16 00:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경식
      2000.07.16 00:57
      for i:=1 to 10 do begin with FrmDM_QM.QryTemp3 do begin Close; Sql.Clear...
    • 성찬
    • 2000.07.16 00:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.16 00:52
      안녕하세요. 최용일입니다. 델코(www.delphikorea.com)에 가시면 강좌란에 민성기님이 만드신 자석폼이 ...
    • 최종선
    • 2000.07.15 22:58
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.07.17 01:37
      안녕하세여..타락임다..^^ 제목대로 주어진 수의 좌측에서 k 번째 비트를 얻는 함수임다.. 즐푸 하세...
    • 구창민
      2000.07.15 23:42
      최종선 wrote: > > string을 1bit씩 나눠 체크해야 할 일이 생겼습니다. > > 해서 > > s:string...
    • 최종선
      2000.07.16 00:11
      날 좋은(?) 주말에 이런 재미없는 질문에 답변 감사드립니다.^^ 알려 주신것만해도 많은 도움이 되는...
    • 최용일
      2000.07.16 00:48
      안녕하세요. 최용일입니다. type TBitStr = array[0..7] of Byte; function GetBitStr(Value: Byte...
    • 최종선
      2000.07.16 01:07
      아! 그렇군요. shift를 먼저하면 될걸, and연산부터 했더니 아~~주 길어지더군요^^ 두번째로 이곳에...
    • wildpie
    • 2000.07.15 21:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.07.15 21:52
      안녕하세요 하얀까마귀 입니다.. function IncMonth(const Date: TDateTime; NumberOfMonths: Integer):...
    • 김봉준
    • 2000.07.15 21:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김희중
      2000.07.18 19:04
      98과 2000의 글꼴차이입니다. 98에서 폼을 작성하셔서 2000에 해 보시면 정상적으로 되지만 2000에서 ...
    • 성호종
      2000.07.15 21:55
      김봉준 wrote: 98에서 다시 글꼴설정하고 화면정렬 다시 한 후 컴파일 하셔야 해요~ 2000에서 작성하면 ...
    • 이은아
    • 2000.07.15 21:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.07.15 21:57
      안녕하세요 하얀까마귀 입니다.. 전 질문이 active된 폼을 찾는다던지 하는건줄 알았는데... 그건 다 하...
    • parkisu
      2000.07.16 00:28
      하얀까마귀 wrote: > 안녕하세요 하얀까마귀 입니다.. > > 전 질문이 active된 폼을 찾는다던지 하는건...
    • 하얀까마귀
      2000.07.15 22:01
      안녕하세요 하얀까마귀 입니다.. 저도 그 비슷한 일을 겪긴 했는데.. 마땅한 해결책은.... 이미 프로...
    • 윤석주
    • 2000.07.15 20:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2000.08.10 05:48
      윤석주 wrote: > 영상보들로 입력되 영상을 저장하려고 합니다. 방법좀 알려주세요 > 잘되어있는 콤포넌...
    • 하얀까마귀
      2000.07.15 22:05
      Copies 입니다.. 여기에 몇장씩 인쇄할지를 지정해주면 됩니다. 그럼.. 즐거운시간 되세요 - 초보...
    • 아리엘
      2000.07.15 22:18
      그거 말구여.. 여러장 나온다 할때.. 만약 두 부를 출력한다면 한부를 쭈욱 출력하고 두번째 다시 출...
    • 왕초보
    • 2000.07.15 19:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.07.15 20:38
      안녕하세요 하얀까마귀 입니다. 음.. rowSelect 를 true로 하면 그리드에서 커서(??) 선택되는게 셀이 ...
    • Black}{ole
      2000.07.15 20:42
      어린왕자 wrote: > 고수님 Rx컴포넌트의 메모리테이블 쓰는 방법 좀 갈켜주세요.. 안녕하세요. ^^ 메...
    • 어린왕자
      2000.07.15 22:00
      Black}{ole wrote: > 어린왕자 wrote: > > 고수님 Rx컴포넌트의 메모리테이블 쓰는 방법 좀 갈켜주세요.....
    • Mr. Ziker
      2000.07.25 21:05
      어린왕자 wrote: > Black}{ole wrote: > > 어린왕자 wrote: > > > 고수님 Rx컴포넌트의 메모리테이블 쓰...
    • 뭉치
    • 2000.07.15 18:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.15 22:00
      뭉치 wrote: 아래의 예제와 아주 흡사한 경우를 말씀드리지요~ 은행에서 통장을 인쇄할때 한번찍었던 내...
    • dims
    • 2000.07.15 18:07
    • 0 COMMENTS
    • /
    • 0 LIKES