C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[26219] Re:Re:[질문] SubForm에서 ParentForm의 값 access 시 Access Violation 발생
땅주인 [heaven2] 698 읽음    2003-07-04 14:07
감사합니다. ShowModal하기 전에 값을 설정해주고 하니까 되는 군요...

그러면,한가지 더요..

성격상 SubForm에서 어떤 데이터를 선택 결정하면 그 데이터를 ParentForm에 전달해주어야 합니다.
이럴 때는 마찬가지로 Access Violation이 나오는데 어떻게 해야 하지요?

Parent에서 호출하는 코드

void __fastcall TForm_InOut::Edit_CompanyExit(TObject *Sender)
{
   TForm_InOut_Ret *Form_InOut_Ret = new TForm_InOut_Ret(this);

   Form_InOut_Ret->Company   = Edit_Company->Text;
   Form_InOut_Ret->EnterUser = Edit_EnterUser->Text;
   Form_InOut_Ret->PersonNo  = Edit_PersonNo->Text;

   Form_InOut_Ret->ShowModal();
}


SubForm에서 Parent에 값을 쓰는 루틴..

void __fastcall TForm_InOut_Ret::BitBtnOkClick(TObject *Sender)
{
   // 출입자 선택 시 처리 루틴
   String Company, EnterUser, PersonNo;

   if (DBGrid1->DataSource->DataSet->Active == true ) {
      TDataSet *pDS = DBGrid1->DataSource->DataSet;
      Company   = pDS->Fields->Fields[0]->AsString;
      EnterUser = pDS->Fields->Fields[1]->AsString;
      PersonNo  = pDS->Fields->Fields[2]->AsString;

      ((TForm_InOut *)this->Parent)->Edit_Company->Text = Company;  // 이부분에서 에러..
      ((TForm_InOut *)this->Parent)->Edit_EnterUser->Text = EnterUser;
      ((TForm_InOut *)this->Parent)->Edit_PersonNo->Text = PersonNo;
   }
}

감사합니다.


김정규 님이 쓰신 글 :
: Parent Form에서 Child Form의 instance에 값을 설정해주고 ShowModal()을 호출하는것이 더 자연스러운 방법 아닐까요?
:
:
: TForm_InOut_Ret child = new TForm_InOut_Ret();
: child.Comapny = Edit_Company->Text
: ...
: child->ShowModal()
:
:
:
:
: 땅주인 님이 쓰신 글 :
: : Form A에서 Form B를 ShowModal()로 보여줍니다.
: :
: : Form B에서는 OnShow/OnActivate event에서 Form A의 Edit Control의 값을
: : 읽어 오게 코딩했습니다. 이 부분에서 Access Violation이 납니다.
: : 어떻게 해결하지요?
: :
: : void __fastcall TForm_InOut_Ret::FormShow(TObject *Sender)
: : {
: :    String sql;
: :    String Company, EnterUser, PersonNo;
: :
: :    Company   = Form_InOut->Edit_Company->Text;   // 이부분에서 에러...
: :    EnterUser = Form_InOut->Edit_EnterUser->Text;
: :    PersonNo  = Form_InOut->Edit_PersonNo->Text;
: :    ....
: :
: : 감사합니다.
: :
: :

+ -

관련 글 리스트
26207 [질문] SubForm에서 ParentForm의 값 access 시 Access Violation 발생 땅주인 768 2003/07/03
26211     Re:[질문] SubForm에서 ParentForm의 값 access 시 Access Violation 발생 김정규 876 2003/07/04
26219         Re:Re:[질문] SubForm에서 ParentForm의 값 access 시 Access Violation 발생 땅주인 698 2003/07/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.