
                                                                  
#include <vcl.h>
#pragma hdrstop

//[2010.03.02.화][생성!!!]{----------------
//<GBalloonBox> 를 다루는 API 를 기술한다.
//}----------------------------------------

#include  "GUI_GBalloonBox.h"

#include  "vmos_def.h"
#include  "vmos.h"
#include  "c_define.h"

//[GUI]
//{
    #include  "GBalloonBox.h"

    //[2010.03.03.수][추가!!!]
    #include  "gui_part.h"

//}

//[2011.12.01.목][중요수정!!!]{*******
//신형 API 방식으로 전부 새롭게 수정.
//}***********************************

void __fastcall _GUI_GBalloonBox_Create(void)
{
  //[2010.03.02.화][생성!!!]{-------
  //<GBalloonBox> 를 하나 생성한다.
  //
  //[2011.12.01.목][중요수정!!!]----
  //새로운 방식으로 API 를 처리.
  //}-------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU8   pMother;   //주소.
          DTU2   pGid;
          DTS4   pX;
          DTS4   pY;
          DTU1   pVisible;

      //}

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{---------------------------------------------------
  //void _GBalloonBox_생성_(void            *p생성자,
  //                        //개체를 생성할 모체의 생성자 위치.
  //                        void            *p모체생성자,
  //                        unsigned short   p식별자,
  //                        int              pX,
  //                        int              pY,
  //                        unsigned char    p보이기감추기);
  //}-----------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[void  *p모체생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pMother)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pMother, &pMother);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned short  p식별자]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (2), (DTU1 *)(&pGid)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (2);
      //}--------------------------

  //}

  //[int  pX]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pX)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[int  pY]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pY)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p보이기감추기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pVisible)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

  //}

  //[명령처리]
  //{
      //일단 확인용으로 무조건 지정 생성하는 것으로 한다.
      GBalloonBox_Create((void *)pCreator, (void *)pMother, pGid, pX, pY, pVisible);

  //}

}

void __fastcall _GUI_GBalloonBox_Delete(void)
{
  //[2010.03.02.화][생성!!!]{-------
  //지정 <GBalloonBox> 를 삭제한다.
  //
  //[2011.12.01.목][중요수정!!!]----
  //새로운 방식으로 API 를 처리.
  //}-------------------------------

  //[2009.09.08.화][생성!!!]

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;       //주소.

      //}

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{--------------------------------
  //void _GBalloonBox_삭제_(void  *p생성자);
  //}----------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

  //}

  //[명령처리]
  //{
      //일단 확인용으로 무조건 지정 생성하는 것으로 한다.
      GBalloonBox_Delete((void *)pCreator);

  //}

}

void __fastcall _GUI_GBalloonBox_Enable(void)
{
  //[2010.03.02.화][생성!!!]{-----------------
  //<GBalloonBox> 의 <유효/무효> 를 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]--------------
  //새로운 방식으로 API 를 처리.
  //}-----------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU1   pEnable;
          DTU1   pWR;

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{----------------------------------------------------
  //unsigned char _GBalloonBox_유효_(void           *p생성자,
  //                                 unsigned char   p유효무효,
  //                                 unsigned char   p쓰기읽기);
  //}------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned char  p유효무효]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pEnable)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GBalloonBox->Enabled = pEnable;

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->Enabled;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (1), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_Visible(void)
{
  //[2010.03.02.화][생성!!!]{---------------------
  //<GBalloonBox> 의 <보이기/감추기> 를 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]------------------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU1   pVisible;
          DTU1   pWR;

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{---------------------------------------------------------
  //unsigned char _GBalloonBox_보이기_(void           *p생성자,
  //                                   unsigned char   p보이기감추기,
  //                                   unsigned char   p쓰기읽기);
  //}-----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned char  p보이기감추기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pVisible)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GBalloonBox->Visible = pVisible;

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->Visible;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (1), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_FontStyle(void)
{
  //[2010.03.02.화][생성!!!]{----------------
  //<GBalloonBox> 의 [문자형식] 을 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]-------------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU1   pFontStyle;
          DTU1   pWR;

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{--------------------------------------------------------
  //unsigned char _GBalloonBox_문자형식_(void           *p생성자,
  //                                     unsigned char   p문자형식,
  //                                     unsigned char   p쓰기읽기);
  //}----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned char  p문자형식]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pFontStyle)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GBalloonBox->_FontStyle(pFontStyle);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_fontStyle;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (1), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_FontColor(void)
{
  //[2010.03.02.화][생성!!!]{--------------
  //<GBalloonBox> 의 [문자색] 을 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]-----------
  //새로운 방식으로 API 를 처리.
  //}--------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU4   pFontColor;
          DTU1   pWR;

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{-----------------------------------------------------
  //unsigned int _GBalloonBox_문자색_(void           *p생성자,
  //                                  unsigned int    p색상,
  //                                  unsigned char   p쓰기읽기);
  //}-------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned int  p색상]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pFontColor)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GBalloonBox->_FontColor(pFontColor);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_fontColor;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (4), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_BalloonBox(void)
{
  //[2010.03.02.화][생성!!!]{-----------------------------------
  //<GBalloonBox> 의 [문자열] 을 설정하고 지정 위치에 보여준다.
  //
  //[2011.12.01.목][중요수정!!!]--------------------------------
  //새로운 방식으로 API 를 처리.
  //}-----------------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTS4   pX;
          DTS4   pY;
          DTU1   pTimeUse;
          DTU8   pStr;      //주소.

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{---------------------------------------------------
  //void _GBalloonBox_설정_(void            *p생성자,
  //                        int              pX,
  //                        int              pY,
  //                        unsigned char    p시간지연사용유무,
  //                        char            *p문자열);
  //}-----------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[int  pX]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pX)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[int  pY]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pY)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p시간지연사용유무]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pTimeUse)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[char  *p문자열]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pStr)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pStr, &pStr);

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      //직접 개체를 처리한다.
      GBalloonBox->_BalloonBox(pX, pY, pTimeUse, (char *)pStr);

  //}

}

void __fastcall _GUI_GBalloonBox_BalloonBoxInPart(void)
{
  //[2010.03.03.화][생성!!!]{---------------------------------------------------
  //<GBalloonBox> 의 [문자열] 을 설정하고 지정 위치에 보여준다.
  //단, <_GUI_GBalloonBox_BalloonBox()> 와는 달리 지정된 [그림부품] 안의 영역을
  //대상으로 지정한 (X, Y) 위치에 보여준다.
  //
  //[2011.12.01.목][중요수정!!!]------------------------------------------------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU8   pPart;     //주소.
          DTS4   pX;
          DTS4   pY;
          DTU1   pTimeUse;
          DTU8   pStr;      //주소.

      //}

      //[2010.03.03.수][추가!!!]
      void  *mOwner  = NULL;
      void  *mParent = NULL;

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{------------------------------------------------------------
  //void _GBalloonBox_그림부품안설정_(void           *p생성자,
  //                                  void           *p대상그림부품,
  //                                  int             pX,
  //                                  int             pY,
  //                                  unsigned char   p시간지연사용유무,
  //                                  char           *p문자열);
  //}--------------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[void  *p대상그림부품]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pPart)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pPart, &pPart);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[int  pX]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pX)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[int  pY]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pY)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p시간지연사용유무]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pTimeUse)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[char  *p문자열]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pStr)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pStr, &pStr);

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      //[그림부품 정보 얻기]
      //{
          //[!]{-------------------------------------------------------
          //대상 그림 부품의 정보를 얻는다.
          //이는 <GVmos>, <GForm> 의 경우는 내부의 <_baseForm> 이 실제
          //대상이 되기 때문에 이를 구분하기 위한 것이다.
          //모체 정보를 구하는 함수를 그냥 사용하면 된다.
          //}----------------------------------------------------------

          GPART_GetMotherInfo((void *)pPart, &mOwner, &mParent);

      //}

      //직접 개체를 처리한다.
      GBalloonBox->_BalloonBoxInPart(mParent, pX, pY, pTimeUse, (char *)pStr);

  //}

}

void __fastcall _GUI_GBalloonBox_BalloonBoxAutoLineInPart(void)
{
  //[2012.03.31.토][생성!!!]{--------------------------------------------------
  //<_GUI_GBalloonBox_BalloonBoxInPart()> 와 동일한 기능이나
  //[화면] 에서 [오른편] 으로 벗어나는 문자열이 있는 경우 자동으로 [줄바꿈] 을
  //만들어 [다중행] 으로 만들어 출력한다.
  //
  //<_GUI_GBalloonBox_BalloonBoxInPart()> 함수를 가지고 만든다.
  //
  //[주의!!!]------------------------------------------------------------------
  //단, 반드시 [단일행 문자열] 만 사용해야 제대로 적용된다.
  //}--------------------------------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU8   pPart;     //주소.
          DTS4   pX;
          DTS4   pY;
          DTU1   pTimeUse;
          DTU8   pLineStr;  //주소.

      //}

      //[2010.03.03.수][추가!!!]
      void  *mOwner  = NULL;
      void  *mParent = NULL;

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{----------------------------------------------------------------------
  //void _GBalloonBox_자동행적용그림부품안설정_(void           *p생성자,
  //                                            void           *p대상그림부품,
  //                                            int             pX,
  //                                            int             pY,
  //                                            unsigned char   p시간지연사용유무,
  //                                            char           *p행문자열);
  //}------------------------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[void  *p대상그림부품]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pPart)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pPart, &pPart);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[int  pX]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pX)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[int  pY]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pY)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p시간지연사용유무]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pTimeUse)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[char  *p행문자열]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pLineStr)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pLineStr, &pLineStr);

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      //[그림부품 정보 얻기]
      //{
          //[!]{-------------------------------------------------------
          //대상 그림 부품의 정보를 얻는다.
          //이는 <GVmos>, <GForm> 의 경우는 내부의 <_baseForm> 이 실제
          //대상이 되기 때문에 이를 구분하기 위한 것이다.
          //모체 정보를 구하는 함수를 그냥 사용하면 된다.
          //}----------------------------------------------------------

          GPART_GetMotherInfo((void *)pPart, &mOwner, &mParent);

      //}

      //직접 개체를 처리한다.
      GBalloonBox->_BalloonBoxAutoLineInPart(mParent, pX, pY, pTimeUse, (char *)pLineStr);

  //}

}

void __fastcall _GUI_GBalloonBox_BalloonBoxAutoLine(void)
{
  //[2012.03.31.토][생성!!!]{--------------------------------------------------
  //<_GUI_GBalloonBox_BalloonBox()> 와 동일한 기능이나
  //[화면] 에서 [오른편] 으로 벗어나는 문자열이 있는 경우 자동으로 [줄바꿈] 을
  //만들어 [다중행] 으로 만들어 출력한다.
  //
  //<_GUI_GBalloonBox_BalloonBox()> 함수를 가지고 만든다.
  //
  //[주의!!!]------------------------------------------------------------------
  //단, 반드시 [단일행 문자열] 만 사용해야 제대로 적용된다.
  //}--------------------------------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTS4   pX;
          DTS4   pY;
          DTU1   pTimeUse;
          DTU8   pLineStr;  //주소.

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{------------------------------------------------------------
  //void _GBalloonBox_자동행적용설정_(void           *p생성자,
  //                                  int             pX,
  //                                  int             pY,
  //                                  unsigned char   p시간지연사용유무,
  //                                  char           *p행문자열);
  //}--------------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[int  pX]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pX)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[int  pY]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pY)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p시간지연사용유무]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pTimeUse)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[char  *p행문자열]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pLineStr)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pLineStr, &pLineStr);

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      //직접 개체를 처리한다.
      GBalloonBox->_BalloonBoxAutoLine(pX, pY, pTimeUse, (char *)pLineStr);

  //}

}

void __fastcall _GUI_GBalloonBox_BalloonBoxPos(void)
{
  //[2010.03.02.화][생성!!!]{---------
  //<GBalloonBox> 의 위치만 수정한다.
  //
  //[2011.12.01.목][중요수정!!!]------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTS4   pX;
          DTS4   pY;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{-------------------------------
  //void _GBalloonBox_위치_(void  *p생성자,
  //                        int    pX,
  //                        int    pY);
  //}---------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[int  pX]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pX)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[int  pY]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pY)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      //직접 개체를 처리한다.
      GBalloonBox->_BalloonBoxPos(pX, pY);

  //}

}

void __fastcall _GUI_GBalloonBox_BackColor(void)
{
  //[2010.03.02.화][생성!!!]{--------------
  //<GBalloonBox> 의 [배경색] 을 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]-----------
  //새로운 방식으로 API 를 처리.
  //}--------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU4   pColor;
          DTU1   pWR;

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{-----------------------------------------------------
  //unsigned int _GBalloonBox_배경색_(void           *p생성자,
  //                                  unsigned int    p색상,
  //                                  unsigned char   p쓰기읽기);
  //}-------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned int  p색상]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pColor)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          GBalloonBox->_BackColor(pColor);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_backColor;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (4), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_OutLineColor(void)
{
  //[2010.03.02.화][생성!!!]{----------------
  //<GBalloonBox> 의 [외곽선색] 을 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]-------------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU4   pColor;
          DTU1   pWR;

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{-------------------------------------------------------
  //unsigned int _GBalloonBox_외곽선색_(void           *p생성자,
  //                                    unsigned int    p색상,
  //                                    unsigned char   p쓰기읽기);
  //}---------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned int  p색상]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pColor)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          GBalloonBox->_OutLineColor(pColor);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_outlineColor;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (4), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_Time(void)
{
  //[2010.03.02.화][생성!!!]{----------------------------
  //<GBalloonBox> 의 [보여주기 지연 시간값] 을 설정한다.
  //[풍선도움말] 은 이 [지연시간] 뒤에 보여진다.
  //
  //[2011.12.01.목][중요수정!!!]-------------------------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU4   pTime;
          DTU1   pWR;

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{-------------------------------------------------------
  //unsigned int _GBalloonBox_지연시간_(void           *p생성자,
  //                                    unsigned int    p지연시간,
  //                                    unsigned char   p쓰기읽기);
  //}---------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned int  p지연시간]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pTime)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          GBalloonBox->_Time(pTime);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_time;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (4), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_AlphaBlend(void)
{
  //[2010.03.02.화][생성!!!]{---------------------------------------
  //<GBalloonBox> 의 [투명(AlphaBlend)] 속성 사용 유/무를 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]------------------------------------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU1   pAlphaBlendUse;
          DTU1   pWR;

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{----------------------------------------------------
  //unsigned char _GBalloonBox_투명_(void           *p생성자,
  //                                 unsigned char   p사용유무,
  //                                 unsigned char   p쓰기읽기);
  //}------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned char  p사용유무]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pAlphaBlendUse)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          GBalloonBox->_AlphaBlend(pAlphaBlendUse);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->AlphaBlend;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (1), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_AlphaBlendValue(void)
{
  //[2010.03.02.화][생성!!!]{---------------------------------------
  //<GBalloonBox> 의 [투명(AlphaBlend)] 속성 사용 유/무를 설정한다.
  //
  //[2011.12.01.목][중요수정!!!]------------------------------------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------------------------------------

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //[2011.12.01.목][수정!!!]
          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU1   pAlphaBlendValue;
          DTU1   pWR;

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{------------------------------------------------------
  //unsigned char _GBalloonBox_투명도_(void           *p생성자,
  //                                   unsigned char   p투명도,
  //                                   unsigned char   p쓰기읽기);
  //}--------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.01.목][추가!!!]{-----------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned char  p투명도]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pAlphaBlendValue)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));


      switch(pWR)
      {
        case d_Wr :
        {
          GBalloonBox->_AlphaBlendValue(pAlphaBlendValue);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->AlphaBlendValue;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (1), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_KillFocusUse(void)
{
  //[2022.06.02.목][생성]

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU1   pUse;
          DTU1   pWR;

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{-----------------------------------------------------------
  //unsigned char _GBalloonBox_촛점해제사용_(void           *p생성자,
  //                                         unsigned char   p사용유무,
  //                                         unsigned char   p쓰기읽기)
  //}-------------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[!]{--------------------------------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned char  p사용유무]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pUse)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GBalloonBox->_KillFocusUse(pUse);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_killFocusUse;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (1), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}

void __fastcall _GUI_GBalloonBox_HideTime(void)
{
  //[2022.06.28.화][생성]

  //[VAR]
  //{
      //[기본]
      //{
          class  VMOS  *vmos;

          //<@LOCAL> 을 기본으로 한 [절대주소](대문자로 절대주소임을 구분하자).
          DTU8   ADR;

      //}

      //[API]
      //{
          //주소는 전부 MCU 상의 주소다.
          DTU8   pCreator;  //주소.
          DTU4   pHideTime;
          DTU1   pWR;

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGBalloonBox_Form  *GBalloonBox;

  //}

  //[VMOS 위치 얻기]{--
  VMOS_GetPtr(&vmos);
  //}------------------

  //[함수형]{---------------------------------------------------------
  //unsigned int _GBalloonBox_자동감추기_(void           *p생성자,
  //                                      unsigned int    p시간값_ms,
  //                                      unsigned char   p쓰기읽기)
  //}-----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[!]{--------------------------------------------------------
      //<@LOCAL> 과 같은 [절대주소] 값.
      //함수 [인수] 등 모든 지역변수는 <@LOCAL> 부터 시작되기 때문.
      //첫번째 [지역변수(인수포함)] 의 [절대주소] 가 된다.
      //}-----------------------------------------------------------

      ADR = (vmos->regREG_[d_VM_Reg_LOCAL]);

  //}

  //[void  *p생성자]
  //{
      //[절대주소] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (8), (DTU1 *)(&pCreator)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //MCU 내부적으로처리 하므로 실제 물리주소로 바꾼다.
      vmos->VMOS_Conv_AdrToSysAdr(pCreator, &pCreator);

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (8);
      //}--------------------------

  //}

  //[unsigned int  p시간값_ms]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pHideTime)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (4);
      //}--------------------------

  //}

  //[unsigned char  p쓰기읽기]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (1), (DTU1 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

      //[다음 주소 계산]{----------
      //현재 [인수] 크기를 더한다.
      ADR += (1);
      //}--------------------------

  //}

  //[명령처리]
  //{
      //[생성자] 의 정보로 해당 개체의 위치를 얻는다.
      GBalloonBox = (TGBalloonBox_Form *)(*((DTU8 *)pCreator));

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GBalloonBox->_HideTime(pHideTime);

        } break;

        case d_Rd :
        {
          //[반환값 얻기]
          //{
              pReturn = GBalloonBox->_hideTime;

          //}

          //[값] 쓰기.
          if(vmos->VMOS_WrRd(d_Wr, ADR, (4), (DTU1 *)(&pReturn)) != true)
          { vmos->regSysFuncCallResult = d_False; return; }

        } break;

      }

  //}

}








