|
감사합니다. 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;
: : ....
: :
: : 감사합니다.
: :
: :
|