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
[38852] Re:흠...다소 근본적인 문제가..
2HB [thigon] 843 읽음    2005-01-21 09:36
그렇다면 아마 이런 식으로 하면 해결될듯하군요.

//헤더파일처리부입니다.
class SendClass
{//보낼 클래스
    public:
    int nSendCnt;
    String sSendString;
    void CntUp(void); //함수처리
};
class TForm1 : public TForm
{
**중략**
public:        // User declarations
    SendClass SClass; //위에서 정의한 클래스를 폼1안에서 선언.
};
//폼1에서의 코딩
void SendClass::CntUp(void) //클래스에 선언된 함수처리부분
{
    nSendCnt++;
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
    SClass.nSendCnt = 1; //폼1의 헤더에서 선언된 SClass에 값을 넣고
    SClass.sSendString = "aaa";
}
//폼2에서의 코딩
void __fastcall TForm2::Button4Click(TObject *Sender)
{
    Edit2->Text = Form1->SClass.sSendString;    //폼1의 SClass를 가져온다.
    Form1->SClass.CntUp(); //정의되어있는 함수불러다쓰기
    Edit1->Text = IntToStr(Form1->SClass.nSendCnt);
}

이런식을 생각하신것 같은데 맞나요?

김달신 님이 쓰신 글 :
: 답변 정말로 감사드립니다.
:
: 제가 원래 할려고 하는 바는 ClassA에 모든 변수(Array포함)를 정의하고 MainForm에서 이 ClassA에 엑세스해서
: 데이터를 여러 멤버함수로 처리하여 ClassA의 변수에 저장을 하고 이를 newForm에서 그 값을 쓰겠다는 것입니다.
:
: newForm에서는 다시 MainForm의 멤버함수에 엑세스하여 일부 변수값들(ClassA의)을 계산하고, 이 변화된 값들을 다시 MainForm으로 보내겠다는 이야기인데.. 문제는 ClassA의 변수들에 저장이 되어 이를 newForm에서 쓸수 있을거라 생각을 했는데 이 ClassA의 변수들이 마치 로컬 변수처럼 행동을 하더라는 이야기입니다. 따라서 newForm에서 체크를 해 보면 MainForm에서 멀쩡이 어사인된 값이 newForm에서는 모두 NULL값으로 되어버리더군요.
:
: 사실 newForm의 Text box나 Line들에 있는 값들은 Property값이라서인지 MainForm에서 바로 불러들일 수 있었거던요. 그래서 같은 식으로 작동을 할거라 여겼는데... 
:
: 이는 제가 아마 A폼에서 B폼으로 자료값을 넘기거나 B폼에 있는 함수를 쓸려고 하는 문제를 포함하여 class의 변수처리과정에 대한 이해가 부족하여 생긴 것 같습니다.
:
:
: 2HB 님이 쓰신 글 :
: : 으음. 제가 아직까지 Class를 직접 생성하고 수정하고, 뭐 이런 것에 약해서 정확한 이해는 못했습니다만.
: : 대강 이런 식의 프로그램을 말하시는게 아닐까..하고 대강 짜봤습니다.
: :
: : 뭐. 참조하실 데이터를 확실하게 Form의 header파일의 public부분에 넣어두셨는지 확인하시고, 만약에 코드안에 넣으셨으면 자연스럽게 지역변수로 인식하게 될겁니다. 아마... 근데, 컴파일도 억세스도 잘 되면 이런 문제는 아닐성도 싶구요.
: :
: : 그저 직접 프로그램을 보기 전엔 도통 모르겠군요 =_=;;
: :
: : 김달신 님이 쓰신 글 :
: : : MainForm과 여기서 호출하는 NewForm이 있습니다.
: : : 두 폼의 헤더파일을 상호 인클루드 시켰구요.
: : :  MainForm에서 버튼클릭시 호출폼을 show()로 호출하면 NewForm이 나타납니다.
: : :
: : : 그런데 MainForm에서 계산된 데이터를 NewForm에서 참조한다던지, NewForm에서 계산된 데이터를 MainForm으로 보내면 그 값이 0으로 되어버리더군요.
: : : MainForm과 NewForm 모두 별도의 Class에 정의된 변수들을 불러서 사용을 하였구요.
: : : 데이터 처리 함수는 모두 MainForm에 정의를 하였습니다.
: : :
: : : Compile도 멀쩡히 되고 Access에러도 잡았는데 값들이 넘어가질 않는군요.
: : :
: : : 이거 어떻게 해야 할지 난감하군요. 역시 초짜는 어쩔 수 없나 봅니다.
: : : 고수님들의 도움을 절실히 구합니다.

+ -

관련 글 리스트
38838 Form들간 계산된 데이터 주고 받기를 어떻게...? 김달신 1197 2005/01/20
38842     Re:Form들간 계산된 데이터 주고 받기를 어떻게...? 2HB 926 2005/01/20
38849         흠...다소 근본적인 문제가.. 김달신 800 2005/01/21
38852             Re:흠...다소 근본적인 문제가.. 2HB 843 2005/01/21
38858                 Re:Re:흠...다소 근본적인 문제가.. 열씸! 867 2005/01/21
38877                     그렇군요 =_=! 2HB 830 2005/01/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.