|
#include "member_reference.h"
#include "member_change.h"
질문의 내용으로 볼때 에러는
frmmbchange->udata = member_find; ==> 여기서 발생하는것 같네요
만약 위 코드에서 문제가 나는것이라면 아래와 같은 문제를 생각해 볼수 있을것 같습니다.
@ 문제 가능성 1 - frmmbchange 객체가 생성되지 않는경우
위와 같이 include만 한다고 해서 frmmbchange 오브젝트가 생성되지는 않습니다.
project 옵션에서 자동생성으로 해두셨으면 자동생성되었기 문제가 없겠지만
자동생성이 아닌경우에는 coding으로 생성해줘야합니다.
님의 올리신 내용에는 frmmbchange를 생성하는 부분이 없네요
button2 click에서 아래와 같이 mb3변수를 만들어서 사용하셨지만
mb3는 지역변수 일분 아니라 곧 바로 delete하셨구요
Tfrmmbchange *mb3 = new Tfrmmbchange(this);
mb3->ShowModal();
delete mb3;
----해결------
방법 1
project 옵션
Forms 에서 auto-create forms에 Tfrmmbchange 을 추가합니다.
방법2
Tfrmmbreference 이 create될때 Tfrmmbchange 를 생성해 줍니다.
void __fastcall Tfrmmbreference::FormCreate(TObject *Sender)
{
frmmbchange =new Tfrmmbchange (this);
}
@ 문제 가능성2
( 만약 1번 문제가 아니라면...)
Tfrmmbchange 의 frmmbchange->udata 가 포인터 변수인데 제대로 설정(생성)이 되지 않았거나
하는 경우가 되겠네요
기타.....
그럼 ....
------------ 아래 원문 -----------------------------------
버튼을 눌렀을때 변수에 저장되어 있는값을
다른 폼에 넣어 줄려고 하거든요....
소스는 다음과 같이 썼는데요..^^;;
void __fastcall Tfrmmbreference::DBGrid1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
member_find = SQLClientDataSet1MBNAME->Value;
}
//---------------------------------------------------------------------------
void __fastcall Tfrmmbreference::Button2Click(TObject *Sender)
{
if(member_find != "")
{
ShowMessage(member_find);
frmmbchange->udata = member_find;
}else{ShowMessage("수정할 고객을 선택해 주세요");}
Tfrmmbchange *mb3 = new Tfrmmbchange(this);
mb3->ShowModal();
delete mb3;
}
DBGrid에서 김도일을 선택하고 버튼을 누르면
첨부파일 1번 같이 나오고요...
ok를 누르면 첨부파일 2번같이 에러가 나오거든요...
무슨에러인지 ;;
접근할수 없다고 나오는 거 같은데....
frmmbchanger과 연결도 했는데... 왜그러는지 알고 싶어요..ㅜㅜ
#include <vcl.h>
#pragma hdrstop
#include "member_reference.h"
#include "member_change.h"
|