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
[54940] Re:.bpl로 만든 runtime package안에서 다른Form에 있는 변수 읽을 때 Access Error?
아루스 [tinydew4] 1372 읽음    2008-10-20 09:31
웬지.......
ArDataForm1 의
생성자에서 ArData_Frm1 = this; 를
소멸자에서 ArData_Frm1 = NULL; 을
넣어주면 될 것 같네요.


쏘가리 님이 쓰신 글 :
: runtime package 로 ArData.bpl을 만들었습니다.
: 그런데 Package안에 만들은 ArData_Frm1과 ArData_Frm2 간의 변수를 사용하려면
: Access Error가 발생을 하네요. 도무지 방법을 찾을 길이 없습니다.
: ArData_Unit2.cpp 파일의 Button1Click 함수에서 ArData_Frm1->Name = "KKKK";
: 이렇게 ArData_Unit1에 선언되어 있는 변수에 쓸려고 하면 에러가 발생합니다.
: 알고 계시는 분은 꼭 답변해주시면 감사하겠습니다.
:
: ArData_Unit1.cpp
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "ArData_Unit1.h"
: #include "ArData_Unit2.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma link "AdvGrid"
: #pragma link "BaseGrid"
: #pragma resource "*.dfm"
: TArData_Frm1 *ArData_Frm1;
: //---------------------------------------------------------------------------
: __fastcall TArData_Frm1::TArData_Frm1(TComponent* Owner)
:     : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: void initialization(void)
: {
:   RegisterClass(__classid(TArData_Frm1));
: }
:
: void finalization(void)
: {
:   UnRegisterClass(__classid(TArData_Frm1));
: }
:
: #pragma startup initialization
: #pragma exit finalization
: //----------------------------------------------------------------------------
: void __fastcall TfrmOrderEnquiry::FormClose(TObject *Sender,
:       TCloseAction &Action)
: {
:   Action = caFree;
: }
: //---------------------------------------------------------------------------
: void __fastcall TArData_Frm1::FormClose(TObject *Sender, TCloseAction &Action)
: {
:     Action = caFree;
: }
: //---------------------------------------------------------------------------
: void __fastcall TArData_Frm1::Button1Click(TObject *Sender)
: {
:     TForm *ar_data = new TArData_Frm2(NULL);
:     ar_data->Show();
: }
: //---------------------------------------------------------------------------
:
: ArData_Unit1.h
: //---------------------------------------------------------------------------
:
: #ifndef ArData_Unit1H
: #define ArData_Unit1H
: //---------------------------------------------------------------------------
: #include <Classes.hpp>
: #include <Controls.hpp>
: #include <StdCtrls.hpp>
: #include <Forms.hpp>
: #include "AdvGrid.hpp"
: #include "BaseGrid.hpp"
: #include <Grids.hpp>
: //---------------------------------------------------------------------------
: class TArData_Frm1 : public TForm
: {
: __published:    // IDE-managed Components
:     TButton *Button1;
:     TAdvStringGrid *AdvStringGrid1;
:     void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
:     void __fastcall Button1Click(TObject *Sender);
: private:    // User declarations
:
: public:        // User declarations
:     AnsiString Name;
:     __fastcall TArData_Frm1(TComponent* Owner);
: };
: //---------------------------------------------------------------------------
: extern PACKAGE TArData_Frm1 *ArData_Frm1;
: //---------------------------------------------------------------------------
: #endif
:
: ArData_Unit2.cpp
: /---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "ArData_Unit2.h"
: #include "ArData_Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TArData_Frm2 *ArData_Frm2;
: //---------------------------------------------------------------------------
: __fastcall TArData_Frm2::TArData_Frm2(TComponent* Owner)
:     : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: void __fastcall TArData_Frm2::Button1Click(TObject *Sender)
: {
:     ArData_Frm1->Name = "KKKK";  <------여기서 에러 발생
:                 ShowMessage(ArData_Frm1->Name);
: }
: //---------------------------------------------------------------------------
: void __fastcall TArData_Frm2::FormClose(TObject *Sender, TCloseAction &Action)
: {
:     Action = caFree;
: }
: //---------------------------------------------------------------------------
: void init_Unit2(void)
: {
:   RegisterClass(__classid(TArData_Frm2));
: }
:
: void final_Unit2(void)
: {
:   UnRegisterClass(__classid(TArData_Frm2));
: }
:
: #pragma startup init_Unit2
: #pragma exit final_Unit2
:
: ArData_Unit2.h
: //---------------------------------------------------------------------------
:
: #ifndef ArData_Unit2H
: #define ArData_Unit2H
: //---------------------------------------------------------------------------
: #include <Classes.hpp>
: #include <Controls.hpp>
: #include <StdCtrls.hpp>
: #include <Forms.hpp>
: //---------------------------------------------------------------------------
: class TArData_Frm2 : public TForm
: {
: __published:    // IDE-managed Components
:     TButton *Button1;
:     void __fastcall Button1Click(TObject *Sender);
:     void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
: private:    // User declarations
: public:        // User declarations
:     __fastcall TArData_Frm2(TComponent* Owner);
: };
: //---------------------------------------------------------------------------
: extern PACKAGE TArData_Frm2 *ArData_Frm2;
: //---------------------------------------------------------------------------
: #endif
:
:
: bpl 파일 콜 하는 프로그램 부분
:
: try {
:      PHandle = LoadPackage("ArData.bpl");
: } catch (...) {
:     ShowMessage("LoadPackage Error!!!");
: }
:
: AClass = GetClass("TArData_Frm1");
:
:  if (AClass != NULL) {
:      Application->CreateForm(AClass, &AForm);
:      AForm->Show();
:   }

+ -

관련 글 리스트
54939 .bpl로 만든 runtime package안에서 다른Form에 있는 변수 읽을 때 Access Error? 쏘가리 1183 2008/10/18
54940     Re:.bpl로 만든 runtime package안에서 다른Form에 있는 변수 읽을 때 Access Error? 아루스 1372 2008/10/20
54942         Re:Re:.bpl로 만든 runtime package안에서 다른Form에 있는 변수 읽을 때 Access Error? 쏘가리 1363 2008/10/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.