직접 부탁드려 죄송합니다. 하지만 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;
소스를 보야 정확히 파악을 하겠지만.. 지금 말씀하신건 아마 상호참조 같네요..
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;