Q&A

  • 하얀까마귀님께 - MDI Child From에서 ..
직접 부탁드려 죄송합니다. 하지만 2주째 고생하고 있는 델 초보입니다.



MDI Parent Form(Form A)에서 DLL로 된 MDI Child Form(Form B)을 Call하구요

MDI Child Form(Form B)에서 Normal Form(Form C)을 Call하는데요

Call까지는 이상없는데 Normal From(Form C)에서 (Form B)의 EditBox등을 참조하면

Error가 나는데 그 이유 좀 가르쳐 주세요.



Error내용은 "access violation at address ...." 이구요.



Error나는 문장은 (Form C)에서

Edit1.Text := (Form B).Edit1.Text; 입니다.



(Form B)에서 (Form C) Call할때는

NxtFrm := TMdiChd11.Create(Application);

NxtFrm.ShowModal;

3  COMMENTS
  • Profile
    하얀까마귀 2000.07.18 22:26
    안녕하세요 하얀까마귀 입니다..



    소스를 보야 정확히 파악을 하겠지만.. 지금 말씀하신건 아마 상호참조 같네요..



    B에서 C폼을 부르기 위해 참조를 하셧을 꺼고요.. 거기서.. C에서 다시 B의 Edit를



    참조하신건데.. 이건 안됩니다..



    그래서... 음... 그 EditBox가 어떤 용도인지는 모르겠지만.. B에서만 넘겨주는



    거라면 그냥 C폼에 변수를 하나 만드셔서 해당 값을 생성할때 넘겨줍니다..



    FormC := TFormC.Create(self);

    try

    FormC.varEdit := EditBox.Text;

    FromC.FormShow;

    finally

    FormC.Free;

    end;



    뭐 이런 식으로요..



    당연히 폼 C에는 varEdit라는 변수가 public으로 정의되어 있어야죠..



    아니고 프로그램 전체에서 쓰는 변수라면.. 이렇게 폼 내부에 넣기 보다는 공통 모듈에



    넣는게 더 좋구요..



    일단 FromC에서 uses문에 FormB를 참조한걸 없앤다고 생각하시고 작업하시면 되겠네요



    그럼.. 이문제 아니면 멜주세요..



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



    - 초보 하얀까마귀 -



    최연수 wrote:

    > 직접 부탁드려 죄송합니다. 하지만 2주째 고생하고 있는 델 초보입니다.

    >

    > MDI Parent Form(Form A)에서 DLL로 된 MDI Child Form(Form B)을 Call하구요

    > MDI Child Form(Form B)에서 Normal Form(Form C)을 Call하는데요

    > Call까지는 이상없는데 Normal From(Form C)에서 (Form B)의 EditBox등을 참조하면

    > Error가 나는데 그 이유 좀 가르쳐 주세요.

    >

    > Error내용은 "access violation at address ...." 이구요.

    >

    > Error나는 문장은 (Form C)에서

    > Edit1.Text := (Form B).Edit1.Text; 입니다.

    >

    > (Form B)에서 (Form C) Call할때는

    > NxtFrm := TMdiChd11.Create(Application);

    > NxtFrm.ShowModal;

  • Profile
    최연수 2000.07.18 23:19
    네.. 상호 참조 때문이었나 봅니다.

    그런데 상호 참조 할수 밖에 없었다고 생각했습니다.



    FormC는 인쇄Form으로서 FormB에 있는 ListView의 내용을 그대로 인쇄하는

    Form이었거든요.

    결국 FormB는 처리 결과를 ListView와 EditBox등으로 보여주고

    인쇄버튼을 누르면 FormC에서 그 내용을 인쇄하는 프로그램이었습니다.

    이럴 경우에는 어떻게 하는게 좋을까요 ?

    마져 좋은 가르침을 바랍니다.





    하얀까마귀 wrote:

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

    >

    > 소스를 보야 정확히 파악을 하겠지만.. 지금 말씀하신건 아마 상호참조 같네요..

    >

    > B에서 C폼을 부르기 위해 참조를 하셧을 꺼고요.. 거기서.. C에서 다시 B의 Edit를

    >

    > 참조하신건데.. 이건 안됩니다..

    >

    > 그래서... 음... 그 EditBox가 어떤 용도인지는 모르겠지만.. B에서만 넘겨주는

    >

    > 거라면 그냥 C폼에 변수를 하나 만드셔서 해당 값을 생성할때 넘겨줍니다..

    >

    > FormC := TFormC.Create(self);

    > try

    > FormC.varEdit := EditBox.Text;

    > FromC.FormShow;

    > finally

    > FormC.Free;

    > end;

    >

    > 뭐 이런 식으로요..

    >

    > 당연히 폼 C에는 varEdit라는 변수가 public으로 정의되어 있어야죠..

    >

    > 아니고 프로그램 전체에서 쓰는 변수라면.. 이렇게 폼 내부에 넣기 보다는 공통 모듈에

    >

    > 넣는게 더 좋구요..

    >

    > 일단 FromC에서 uses문에 FormB를 참조한걸 없앤다고 생각하시고 작업하시면 되겠네요

    >

    > 그럼.. 이문제 아니면 멜주세요..

    >

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

    >

    > - 초보 하얀까마귀 -

    >

    > 최연수 wrote:

    > > 직접 부탁드려 죄송합니다. 하지만 2주째 고생하고 있는 델 초보입니다.

    > >

    > > MDI Parent Form(Form A)에서 DLL로 된 MDI Child Form(Form B)을 Call하구요

    > > MDI Child Form(Form B)에서 Normal Form(Form C)을 Call하는데요

    > > Call까지는 이상없는데 Normal From(Form C)에서 (Form B)의 EditBox등을 참조하면

    > > Error가 나는데 그 이유 좀 가르쳐 주세요.

    > >

    > > Error내용은 "access violation at address ...." 이구요.

    > >

    > > Error나는 문장은 (Form C)에서

    > > Edit1.Text := (Form B).Edit1.Text; 입니다.

    > >

    > > (Form B)에서 (Form C) Call할때는

    > > NxtFrm := TMdiChd11.Create(Application);

    > > NxtFrm.ShowModal;

  • Profile
    하얀까마귀 2000.07.19 01:13
    안녕하세요 하얀까마귀 입니다..



    음... 폼도 클래스거든요?? 아니.. 이건 그냥 넘어가구요..



    출력이 어떤식으로 되어있는지는 모르겠지만.. 음...



    일단 어떤 폼에서.. 조회같은거나.. 뭐 그런걸 해서 폼B에 그 결과가



    나타 나구요.. 여기에서 출력을 하면 폼C가 뜨면서 QReport로 출력을



    하는건가요?? 아니면 기냥 Quick을 사용안하고 바로 하신건가??



    어떤것이든.. 그 출력하는 곳에서(폼 C) 변수를 정해 주시구요...



    폼 B에서 값을 넘겨 주세요..



    FormC := TFormC.Create(self);

    try

    FormC.varEdit := EditBox.Text; (<---요렇게요.. )

    FromC.FormShow;

    finally

    FormC.Free;

    end;

    end;



    이게 에디트이든 리스트뷰이든 상관없습니다...



    리스트 뷰이면 이것의 items죠?? 이것만 넘기면 되죠..



    폼의 public에



    slListView : TStrings;



    폼C는 이렇게 하면 되고.. 이제 폼B에서 값을 넘겨 줘야 겠죠..?



    아까처럼 폼 C를 생성할때..

    FormC := TFormC.Create(self);

    try

    FormC.varEdit := EditBox.Text; (<---요렇게요.. )

    FormC.slListView := ListView.Items;

    FromC.FormShow;

    finally

    FormC.Free;

    end;

    end;



    요렇게 해주면 될겁니다.. 그럼..



    테스트는 안해서 혹 오타가 있을수도 있으니..... 지가 게을러서.. 쩝...



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



    - 초보 하얀까마귀 -

    • tommy
    • 2000.07.18 22:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이발사
      2000.07.22 19:55
      tommy wrote: > > select hbuseoname from cc_buseo //부서코드테이블 > > hbuseoname //...
    • 타락천사
      2000.07.19 07:37
      안녕하세여.. 타락임다..^^ 시간이 널널하니까 이런 답변두 하는군여..^^;;; 퀵리포트로 되져..^^ ...
    • 하얀까마귀
      2000.07.18 22:33
      안녕하세요 하얀까마귀 입니다.. 음.. 전에 답변을 올렸던 내용하고 비슷한것 같은데... 19227번인데...
    • 델초...
    • 2000.07.18 22:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.07.19 00:47
      델초... wrote: > 안녕하십니까?....델 고수님들....허구한날 질문만 해대는 델초입니다... > 요번껀요.....
    • 타락천사
      2000.07.19 07:13
      안녕하세여.. 타락임다..^^ 저두 초본데여..ㅠㅠ ADO 는 ODBC를 사용할수 있게 합니다... ADO가 O...
    • 최연수
    • 2000.07.18 21:57
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.07.18 22:26
      안녕하세요 하얀까마귀 입니다.. 소스를 보야 정확히 파악을 하겠지만.. 지금 말씀하신건 아마 상호참조...
    • 최연수
      2000.07.18 23:19
      네.. 상호 참조 때문이었나 봅니다. 그런데 상호 참조 할수 밖에 없었다고 생각했습니다. FormC는 인쇄...
    • 하얀까마귀
      2000.07.19 01:13
      안녕하세요 하얀까마귀 입니다.. 음... 폼도 클래스거든요?? 아니.. 이건 그냥 넘어가구요.. 출력이 ...
    • 김윤아
    • 2000.07.18 21:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Black}{ole
      2000.07.18 21:56
      김윤아 wrote: > TListView에서 Item갯수가 많은데도 > 수직 스크롤바가 안보이는데..어떻게 하면 되는거...
    • 발걸음...
      2000.08.08 03:10
      김유중 wrote: > 안녕하세요. 김유중이라고 합니다. > 제가 문의 드리는 내용은 단순한 날짜형, 시간형 ...
    • 발걸음...
      2000.08.08 03:10
      김유중 wrote: > 안녕하세요. 김유중이라고 합니다. > 제가 문의 드리는 내용은 단순한 날짜형, 시간형 ...
    • 타락천사
      2000.07.19 07:01
      안녕하세여. 타락임다..^^ 저두 다른분덜은 어케 처리하는지 궁금하군여..^^ 저 가튼 경우는 시간 가...
    • parkisu
      2000.07.19 09:36
      타락천사 wrote: > 안녕하세여. 타락임다..^^ > > 저두 다른분덜은 어케 처리하는지 궁금하군여..^^ >...
    • 궁금궁금
      2000.07.18 21:53
      서버의 시간과 날짜에는 이상이 없습니다. 그런데도 정확히 '08:59:59' 만큼 서버의 날짜에서 빼줍니다......
    • 정지호
      2000.07.18 23:18
      궁금궁금 wrote: > 서버의 시간과 날짜에는 이상이 없습니다. > 그런데도 정확히 '08:59:59' 만큼 서버의...
    • Black}{ole
      2000.07.18 21:47
      호야 wrote: > 여섯개의 서브폼에 각각 스트링그리드가 있습니다. > 메인폼에서 삽입이라는 버튼을 눌렀...
    • 호야
    • 2000.07.18 20:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정지호
      2000.07.18 20:26
      호야 wrote: > 스트링그리드에서 오른쪽클릭시 스트링그리드의 Row를 > 알고 싶은데 어떻게 해야하나요?...
    • 김만업
    • 2000.07.18 19:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.07.18 19:55
      ^^;;
    • heimdal
      2000.07.18 20:27
      타락천사 wrote: > ^^;; 날짜로 검색을 할려구 디비룩업콤보를 사용했습니다.. 디비에 오늘날짜로 되...
    • 박상길
    • 2000.07.18 19:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송종영
      2000.07.22 01:45
      이렇게 해도 안돼냐요? If (MediaPlayer1.NotifyValue = nvSuccessful) and (MediaPlayer1.Mode = mpSt...
    • 델초김
    • 2000.07.18 11:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.07.18 19:53
      안녕하세여.. 타락임다..^^ 흠..애니메이션은 글케 하면 안되여... 우선 화면도 느리구 그림이 깜빡...
    • 델초김
      2000.07.30 03:57
      타락천사 wrote: > 안녕하세여.. 타락임다..^^ > > 흠..애니메이션은 글케 하면 안되여... > > 우선...
    • 박계원
    • 2000.07.18 11:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모질이
      2000.08.26 18:56
      저도 잘은 모르지만 몇자 적어 봅니다.. usb에 대한 자료는 usb.org에 있고요... 근데 거기에는 table...
    • 정지호
      2000.07.18 18:51
      강민우 wrote: > 실행파일을 만들어서.. 다른 컴퓨터에서 테스트를 해보는데.. > 델파이 4가 깔린 컴퓨터...
    • 타락천사
      2000.07.18 20:03
      안녕하세여..타락임다..^^ 전 고수가 아니지만....ㅠㅠ 런타임에러니까 실행파일이 담긴 또는 필요한...
    • 구창민
      2000.07.18 21:01
      안녕하세요? 구창민입니다. 고수는 아니구요..^^;;; 말씀을 듣고 해보니, 사실이더군요. 아래코드...
    • 화니
    • 2000.07.18 05:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • WebKing
      2000.07.18 06:59
      화니 wrote: > 안녕하십니까...여기서 좋은 정보 많이 얻고 있습니다 > > 제가 남의 짜논것을 받아서 ...