
                                                                  
#include <vcl.h>
#pragma hdrstop

//[2010.03.03.수][생성!!!]{----------
//<GButton> 를 다루는 API 를 기술한다.
//}----------------------------------

#include  "GUI_GButton.h"

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

//[GUI]
//{
    #include  "GButton.h"
                                                                    
    #include  "gui_part.h"

    #include  "ide_library.h"

//}

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

void __fastcall _GUI_GButton_Create(void)
{
  //[2010.03.03.수][생성!!!]{---
  //<GButton> 를 하나 생성한다.
  //
  //[2011.12.02.금][중요수정!!!]
  //새로운 방식으로 API 를 처리.
  //}---------------------------

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

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

      //}

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

      //}

  //}

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

  //[함수형]{--------------------------------------------
  //void _GButton_생성_(void            *p생성자,
  //                    void            *p모체생성자,
  //                    unsigned short   p식별자,
  //                    int              pX,
  //                    int              pY,
  //                    unsigned int     p폭,
  //                    unsigned int     p높이,
  //                    unsigned char    p보이기감추기);
  //}----------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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 int  p폭]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pWidth)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

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

  //}

  //[unsigned int  p높이]
  //{
      //[값] 읽기.
      if(vmos->VMOS_WrRd(d_Rd, ADR, (4), (DTU1 *)(&pHeight)) != 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; }

  //}

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

  //}

}

void __fastcall _GUI_GButton_Delete(void)
{
  //[2010.03.03.수][생성!!!]{---
  //지정 <GButton> 를 삭제한다.
  //
  //[2011.12.02.금][중요수정!!!]
  //새로운 방식으로 API 를 처리.
  //}---------------------------

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

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

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

      //}

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

      //}

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);

  //}

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

  //}

}

void __fastcall _GUI_GButton_Enable(void)
{
  //[2010.03.03.수][생성!!!]{-------------
  //<GButton> 의 <유효/무효> 를 설정한다.
  //}-------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //[2012.07.22.일][수정!!!]{---------------------
          //<GButton> 에도 [비활성] 기능이 추가되었으므로
          //[속성] 함수를 사용하여 처리.
          //}---------------------------------------------
          
          GButton->_Enable(pEnable);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_Visible(void)
{
  //[2010.03.03.수][생성!!!]{-----------------
  //<GButton> 의 <보이기/감추기> 를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]--------------
  //새로운 방식으로 API 를 처리.
  //}-----------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_X(void)
{
  //[2010.03.03.수][생성!!!]{--------
  //<GButton> 의 <Left> 를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]-----
  //새로운 방식으로 API 를 처리.
  //}--------------------------------

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

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

      //}

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

          //반환값
          DTS4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{-----------------------------------
  //int _GButton_X_(void           *p생성자,
  //                int             pX,
  //                unsigned char   p쓰기읽기);
  //}-------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_Left(pX);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_Y(void)
{
  //[2010.03.03.수][생성!!!]{-------
  //<GButton> 의 <Top> 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]----
  //새로운 방식으로 API 를 처리.
  //}-------------------------------

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

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

      //}

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

          //반환값
          DTS4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{-----------------------------------
  //int _GButton_Y_(void           *p생성자,
  //                int             pY,
  //                unsigned char   p쓰기읽기);
  //}-------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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  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 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

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

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_Top(pY);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_Width(void)
{
  //[2010.03.03.수][생성!!!]{---------
  //<GButton> 의 <Width> 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------

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

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

      //}

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

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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 *)(&pWidth)) != 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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_Width(pWidth);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_Height(void)
{
  //[2010.03.03.수][생성!!!]{----------
  //<GButton> 의 <Height> 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]-------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------

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

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

      //}

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

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{-----------------------------------------------
  //unsigned int _GButton_높이_(void           *p생성자,
  //                            unsigned int    p높이,
  //                            unsigned char   p쓰기읽기);
  //}-------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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 *)(&pHeight)) != 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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_Height(pHeight);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_FontColor(void)
{
  //[2010.03.03.수][생성!!!]{----------
  //<GButton> 의 <문자색> 를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]-------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------

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

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

      //}

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

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_FontStyle(void)
{
  //[2010.03.03.수][생성!!!]{------------
  //<GButton> 의 <문자형식> 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]---------
  //새로운 방식으로 API 를 처리.
  //}------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_Caption(void)
{
  //[2010.03.03.수][생성!!!]{----------
  //<GButton> 의 [문자열] 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]-------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------

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

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

      //}

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

          DTU1   pWR;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{---------------------------------------
  //void _GButton_제목_(void           *p생성자,
  //                    char           *pr문자열,
  //                    unsigned char   p쓰기읽기);
  //}-----------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

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

  //}

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

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_Caption((char *)pStr);

        } break;

        case d_Rd :
        {
          //직접 개체를 처리한다.
          STR_Assign((char *)pStr, GButton->_captionStr);

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_CaptionX(void)
{
  //[2010.03.03.수][생성!!!]{-----------------
  //<GButton> 의 [문자열] 위치 X 를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]--------------
  //새로운 방식으로 API 를 처리.
  //}-----------------------------------------

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

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

      //}

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

          //반환값
          DTS4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;


  //}

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

  //[함수형]{-------------------------------------------
  //int _GButton_제목위치X_(void           *p생성자,
  //                        int             pX,
  //                        unsigned char   p쓰기읽기);
  //}---------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_CaptionX(pX);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_CaptionY(void)
{
  //[2010.03.03.수][생성!!!]{-----------------
  //<GButton> 의 [문자열] 위치 Y 를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]--------------
  //새로운 방식으로 API 를 처리.
  //}-----------------------------------------

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

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

      //}

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

          //반환값
          DTS4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{-------------------------------------------
  //int _GButton_제목위치Y_(void           *p생성자,
  //                        int             pY,
  //                        unsigned char   p쓰기읽기);
  //}---------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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  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 *)(&pWR)) != true)
      { vmos->regSysFuncCallResult = d_False; return; }

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

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_CaptionY(pY);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_CaptionAutoPos(void)
{
  //[2010.03.03.수][생성!!!]{---------------------
  //<GButton> 의 [문자열] 을 자동위치로 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]------------------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{--------------------------------------------------------
  //unsigned char _GButton_제목자동위치_(void           *p생성자,
  //                                     unsigned char   p사용유무,
  //                                     unsigned char   p쓰기읽기);
  //}----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          GButton->_CaptionAutoPos(pUse);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_BackColor(void)
{
  //[2010.03.03.수][생성!!!]{----------
  //<GButton> 의 [배경색] 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]-------
  //새로운 방식으로 API 를 처리.
  //}----------------------------------

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

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

      //}

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

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_BackColor(pColor);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_Border(void)
{
  //[2010.03.03.수][생성!!!]{---------------
  //<GButton> 의 [테두리] 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]------------
  //새로운 방식으로 API 를 처리.
  //}---------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_BorderColor(void)
{
  //[2010.03.03.수][생성!!!]{------------
  //<GButton> 의 [테두리색] 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]---------
  //새로운 방식으로 API 를 처리.
  //}------------------------------------

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

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

      //}

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

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

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

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_BorderColor(pColor);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_BalloonHelpUse(void)
{
  //[2010.03.03.수][생성!!!]{------------------------
  //<GButton> 의 [풍선도움말] 사용 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]---------------------
  //새로운 방식으로 API 를 처리.
  //}------------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{-------------------------------------------------------
  //unsigned char _GButton_풍선도움말_(void            *p생성자,
  //                                   unsigned char    p사용유무,
  //                                   unsigned char    p쓰기읽기);
  //}---------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_BalloonHelpStr(void)
{
  //[2010.03.03.수][생성!!!]{---------------------
  //<GButton> 의 [풍선도움말 문자열] 을 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]------------------
  //새로운 방식으로 API 를 처리.
  //
  //[2018.06.22.금][중요수정!!!]------------------
  //}---------------------------------------------

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

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

      //}

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

          DTU1   pWR;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{---------------------------------------------------
  //void _GButton_풍선도움말문자열_(void           *p생성자,
  //                                char           *pr문자열,
  //                                unsigned char   p쓰기읽기);
  //}-----------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

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

  //}

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

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_BalloonHelpStr((char *)pStr);

        } break;

        case d_Rd :
        {
          //직접 개체를 처리한다.
          if(GButton->_balloonHelpStr == NULL)
          {
            //[2018.06.22.금][중요추가!!!]{-------------------------
            //처음에는 사용하지 않는 상태로 NULL 이므로 "" 를 반한.
            //}-----------------------------------------------------
            
            STR_Assign((char *)pStr, "");

          }
          else
          {
            STR_Assign((char *)pStr, GButton->_balloonHelpStr);

          }

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_SelectColor(void)
{
  //[2018.09.23.일][생성!!!]{-----
  //<GButton> 의 [가선택색] 설정.
  //}-----------------------------

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

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

      //}

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

          //반환값
          DTU4   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{-----------------------------------------------------
  //unsigned int _GButton_임시선택색_(void           *p생성자,
  //                                  unsigned int    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 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);
      //}--------------------------

  //}

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

      switch(pWR)
      {
        case d_Wr :
        {
          //직접 개체를 처리한다.
          GButton->_SelectColor(pColor);

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_SelectColorUse(void)
{
  //[2018.09.23.일][생성!!!]{-------------------
  //<GButton> 의 [가선택:색] 사용 [유/무] 설정.
  //}-------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{---------------------------------------------------------
  //unsigned char _GButton_임시선택사용_(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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_EvtMDown(void)
{
  //[2010.03.23.화][생성!!!]{-------------------------
  //<GButton> 의 해당 이벤트의 사용 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]----------------------
  //새로운 방식으로 API 를 처리.
  //}-------------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{--------------------------------------------------------
  //unsigned char _GButton_이벤트_MDown_(void           *p생성자,
  //                                     unsigned char   p사용유무,
  //                                     unsigned char   p쓰기읽기);
  //}----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_EvtMUp(void)
{
  //[2010.03.23.화][생성!!!]{-------------------------
  //<GButton> 의 해당 이벤트의 사용 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]----------------------
  //새로운 방식으로 API 를 처리.
  //}-------------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{------------------------------------------------------
  //unsigned char _GButton_이벤트_MUp_(void           *p생성자,
  //                                   unsigned char   p사용유무,
  //                                   unsigned char   p쓰기읽기);
  //}--------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_EvtMClick(void)
{
  //[2010.03.23.화][생성!!!]{-------------------------
  //<GButton> 의 해당 이벤트의 사용 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]----------------------
  //새로운 방식으로 API 를 처리.
  //}-------------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{---------------------------------------------------------
  //unsigned char _GButton_이벤트_MClick_(void           *p생성자,
  //                                      unsigned char   p사용유무,
  //                                      unsigned char   p쓰기읽기);
  //}-----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_EvtMEnter(void)
{
  //[2010.03.23.화][생성!!!]{-------------------------
  //<GButton> 의 해당 이벤트의 사용 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]----------------------
  //새로운 방식으로 API 를 처리.
  //}-------------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{---------------------------------------------------------
  //unsigned char _GButton_이벤트_MEnter_(void           *p생성자,
  //                                      unsigned char   p사용유무,
  //                                      unsigned char   p쓰기읽기);
  //}-----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}

void __fastcall _GUI_GButton_EvtMLeave(void)
{
  //[2010.03.23.화][생성!!!]{-------------------------
  //<GButton> 의 해당 이벤트의 사용 유/무를 설정한다.
  //
  //[2011.12.02.금][중요수정!!!]----------------------
  //새로운 방식으로 API 를 처리.
  //}-------------------------------------------------

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

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

      //}

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

          //반환값
          DTU1   pReturn;

      //}

      //대상개체.
      TGButton_Form  *GButton;

  //}

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

  //[함수형]{---------------------------------------------------------
  //unsigned char _GButton_이벤트_MLeave_(void           *p생성자,
  //                                      unsigned char   p사용유무,
  //                                      unsigned char   p쓰기읽기);
  //}-----------------------------------------------------------------

  //[기본주소 얻기]
  //{
      //[2011.12.02.금][추가!!!]{-----------------------------------
      //<@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);
      //}--------------------------

  //}

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

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

        } break;

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

          //}

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

        } break;

      }

  //}

}


