
#include "그림부품\GDotMatrix.h"

#include "함수묶음.h"

#include "되돌리기_되살리기.h"


void GDotMatrix_폼디자인_생성(struct ts_생성자  *p생성항목,
                           t_생성자          *p모체생성자,
                           int               pX,
                           int               pY)
{
  //[2023.02.09.목][생성]

  //[VAR]
  //{
      char  문자열[1024];

  //}

  //[그림부품:생성]
  //{
      _GDotMatrix_생성_(p생성항목->생성자, p모체생성자, _Gui_ID_생성(), pX, pY, 381, 75, true);

      문자열_값_합성("GDotMatrix", _Gui_ID_읽기(p생성항목->생성자), 문자열);

      //[이름]{-----------------------
      _Str_할당_(p생성항목->이름, 문자열);
      //}----------------------------

      _GDotMatrix_전구설정_(p생성항목->생성자, 2, 5, clGray, clWhite, true, clGray, clWhite);
      _GDotMatrix_전구배치간격_(p생성항목->생성자, 1, d_쓰기);

      _GDotMatrix_테두리_(p생성항목->생성자, true, d_쓰기);

      //일회성으로 유지는 되나 읽을수 없는 속성(출력하면 끝).
      _GDotMatrix_문자열출력_(p생성항목->생성자, 0, 0, 문자열);

  //}

}

void GDotMatrix_폼디자인_그림부품_삭제(struct ts_생성자  *p생성항목)
{
  //[2023.02.09.목][생성]
  _GDotMatrix_삭제_(p생성항목->생성자);

}

void GDotMatrix_폼디자인_속성탭에_속성_설정(struct ts_생성자  *p생성항목,
                                      char             *p전체항목)
{
  //[2023.02.09.목][생성]

  //[VAR]
  //{
      struct ts_전광판전구설정정보  전광판전구설정정보;

      char   문자열[1024*10];

  //}

  //[전체항목 만들기]
  //{
      _Str_할당_(p전체항목, "");

      속성_수정_문자열("종류", "GDotMatrix", &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("ID", _Gui_ID_읽기(p생성항목->생성자), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_문자열("이름", p생성항목->이름, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("모체", p생성항목->모체ID, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_10진수("X", _GDotMatrix_X_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("Y", _GDotMatrix_Y_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("폭", _GDotMatrix_폭_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("높이", _GDotMatrix_높이_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_10진수("그림영역높이", _GDotMatrix_그림영역높이_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("그림영역폭", _GDotMatrix_그림영역폭_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_16진수("배경색", _GDotMatrix_배경색_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      //[전구 설정 정보 얻기]
      //{
          //[2018.07.15.일][추가!!!]
          _GDotMatrix_전구설정정보_(p생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          속성_수정_전구종류("전구종류", 전광판전구설정정보.종류, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          속성_수정_10진수("전구크기", 전광판전구설정정보.크기, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          속성_수정_16진수("전구켜기색", 전광판전구설정정보.켜기색, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          속성_수정_16진수("전구끄기색", 전광판전구설정정보.끄기색, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          속성_수정_Bool("전구테두리", 전광판전구설정정보.테두리유무, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          속성_수정_16진수("전구테두리색", 전광판전구설정정보.테두리색, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          속성_수정_16진수("전구배경색", 전광판전구설정정보.배경색, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
          _Str_더하기_(p전체항목, "\r\n");

      //}

      속성_수정_10진수("전구배치X", _GDotMatrix_전구배치X_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("전구배치Y", _GDotMatrix_전구배치Y_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("전구배치간격", _GDotMatrix_전구배치간격_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_Bool("전구투명", _GDotMatrix_전구투명_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_16진수("전구투명색", _GDotMatrix_전구투명색_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_Bool("이동", _GDotMatrix_이동_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("이동간격", _GDotMatrix_이동간격_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _GDotMatrix_이동문자열_(p생성항목->생성자, 문자열, d_읽기);
      속성_수정_문자열("이동문자열", 문자열, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("이동문자열간격", _GDotMatrix_이동문자열간격_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_10진수("이동시간간격", _GDotMatrix_이동시간간격_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_Bool("테두리", _GDotMatrix_테두리_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_16진수("테두리색", _GDotMatrix_테두리색_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_Bool("풍선도움말", _GDotMatrix_풍선도움말_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _GDotMatrix_풍선도움말문자열_(p생성항목->생성자, 문자열, d_읽기);
      속성_수정_문자열("풍선도움말문자열", 문자열, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_Bool("유효", p생성항목->유효, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_Bool("보이기", p생성항목->보이기, &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      _Str_더하기_(p전체항목, "\r\n");

      속성_수정_Bool("이벤트_MDown", _GDotMatrix_이벤트_MDown_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_Bool("이벤트_MUp", _GDotMatrix_이벤트_MUp_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_Bool("이벤트_MClick", _GDotMatrix_이벤트_MClick_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_Bool("이벤트_MEnter", _GDotMatrix_이벤트_MEnter_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)])); _Str_더하기_(p전체항목, "\r\n");
      속성_수정_Bool("이벤트_MLeave", _GDotMatrix_이벤트_MLeave_(p생성항목->생성자, NULL, d_읽기), &(p전체항목[_Str_길이얻기_(p전체항목)]));

  //}

}

void GDotMatrix_폼디자인_속성탭의_속성_수정(int               p항목번호,
                                      bool              pT설정_F준비,
                                      t_생성자           *p_속성_GList,
                                      t_생성자           *p_묶음이동_GCheckButton,
                                      t_생성자           *p_속성수정_GEdit,
                                      t_생성자           *p_속성수정_GList,
                                      struct ts_위치크기  *p_선택그림부품_이동전_위치크기,
                                      struct ts_위치크기  *p_선택그림부품_이동후_위치크기,
                                      int               *p_선택그림부품_변위x,
                                      int               *p_선택그림부품_변위y)
{
  //[2023.02.12.일][생성]

  //[VAR]
  //{
      struct ts_생성자         *생성항목;

      char                     항목문자열[1024];
      char                     항목이름[64];

      struct ts_항목수정정보      항목수정정보;

      char                     문자열1[1024*10];
      char                     문자열2[1024*10];

      t_u2                     부품_ID;

      int                      변위_x, 변위_y;

      struct ts_전광판전구설정정보  전광판전구설정정보;

  //}

  //[선택 그림부품 찾기]
  //{
      //[!]{---------------------------------------------------
      //[속성:탭] 에는 [그림부품] 이 [선택] 된 경우만 [속성] 이 나열되므로
      //[선택] 된 [그림부품] 의 [생성정보] 를 얻어 놓는다.
      //}------------------------------------------------------

      if(생성관리_ID로_생성자_찾기(_GCover_대상얻기_(), &생성항목) != true) return;

      //[부품:ID 얻기]
      //{
          //[2019.01.08.화][추가]{--------------------------------
          //<_Gui_ID_읽기(생성항목->생성자)> 형식으로 반복적으로 사용되므로
          //여기서 한번 구하고 <부품_ID> 를 대신 사용.
          //}----------------------------------------------------

          부품_ID = _Gui_ID_읽기(생성항목->생성자);

      //}

  //}

  //[항목 문자열 전체 얻기]
  //{
      _GList_항목얻기_(p_속성_GList, p항목번호, 항목문자열);

  //}

  //[항목이름 추출]
  //{
      //항목의 [첫단어] 가 [항목이름] 이 된다.

      _Str_단어추출_(항목문자열, ' ', 0, 항목이름);

  //}

  //[항목수정정보 정리]
  //{
      //[2018.07.05.목][추가!!!]
      항목수정정보.생성항목 = 생성항목;

      항목수정정보.항목번호 = p항목번호;

      항목수정정보.항목문자열 = 항목문자열;

      항목수정정보.항목이름 = 항목이름;

      //[2018.07.11.수][추가!!!]
      항목수정정보.문자열1 = 문자열1;

      항목수정정보.문자열2 = 문자열2;

  //}

  //[속성 수정]
  //{
      if     (_Str_일치확인_(항목이름, "종류", true) == true)
      {
        //읽기전용.

      }
      else if(_Str_일치확인_(항목이름, "ID", true) == true)
      {
        //읽기전용.

      }
      else if(_Str_일치확인_(항목이름, "이름", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          if(속성항목수정_이름(&항목수정정보) != true) return;

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "모체", true) == true)
      {
        //읽기전용.

        //[중요][2019.02.09.토][수정]{-----------------------
        //[폼디자이너] 상에서 [모체] 도 사용자가 변경할수 있도록 수정.
        //}------------------------------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          //{
              //[!]{----------------------------------------------------------
              //실제 [생성관리정보:모체ID] 수정과 <_GX_모체지정_()> 으로 실제 반영을 처리.
              //<폼디자인_모체_수정()> 함수 내부 참고.
              //}-------------------------------------------------------------

              if(폼디자인_모체_수정(부품_ID, 항목수정정보.처리된값, &변위_x, &변위_y) != true) return;

          //}

          //[항목 수정]
          //{
              속성_수정_기록_문자열(부품_ID, "모체", 문자열2);

              //[X/Y 처리]
              //{
                  //[2019.02.10.일][추가]{--------------------------------
                  //[모체:변경] 시 [마우스로 찍은 위치] 에 [그림부품] 을 배치하므로
                  //[위치] 수정 정보도 같이 기록.
                  //[위치] 는 이미 위의 <폼디자인_모체_수정()> 내부에서 변경된 상태.
                  //}----------------------------------------------------

                  //"모체" 수정과 [묶음수정] 으로 기록한다.
                  폼디자이너_수정기록_속성_X_Y_추가(수정기록_ID_얻기(), 부품_ID, 변위_x, 변위_y);

              //}

          //}

        }
        else
        {
          속성항목준비_모체(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "X", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          _GX_위치크기_얻기_(생성항목->생성자, &(p_선택그림부품_이동전_위치크기->x), &(p_선택그림부품_이동전_위치크기->y), NULL, NULL);

          //[반영]
          _GDotMatrix_X_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          _GX_위치크기_얻기_(생성항목->생성자, &(p_선택그림부품_이동후_위치크기->x), &(p_선택그림부품_이동후_위치크기->y), NULL, NULL);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "X", 문자열2);

          //}

          //[묶음이동인 경우 처리]
          //{
              //[2018.08.20.월][추가!!!]

              //[변위 계산]{--------------------------------------------------------------------
              (*p_선택그림부품_변위x) = p_선택그림부품_이동후_위치크기->x - p_선택그림부품_이동전_위치크기->x;
              (*p_선택그림부품_변위y) = p_선택그림부품_이동후_위치크기->y - p_선택그림부품_이동전_위치크기->y;
              //}-----------------------------------------------------------------------------

              if(_GCheckButton_확인_(p_묶음이동_GCheckButton, NULL, d_읽기) == true)
              {
                선택된_그림부품_묶음이동(부품_ID, 생성항목->모체ID);

              }

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "Y", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          _GX_위치크기_얻기_(생성항목->생성자, &(p_선택그림부품_이동전_위치크기->x), &(p_선택그림부품_이동전_위치크기->y), NULL, NULL);

          //[반영]
          _GDotMatrix_Y_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          _GX_위치크기_얻기_(생성항목->생성자, &(p_선택그림부품_이동후_위치크기->x), &(p_선택그림부품_이동후_위치크기->y), NULL, NULL);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "Y", 문자열2);

          //}

          //[묶음이동인 경우 처리]
          //{
              //[2018.08.20.월][추가!!!]

              //[변위 계산]{--------------------------------------------------------------------
              (*p_선택그림부품_변위x) = p_선택그림부품_이동후_위치크기->x - p_선택그림부품_이동전_위치크기->x;
              (*p_선택그림부품_변위y) = p_선택그림부품_이동후_위치크기->y - p_선택그림부품_이동전_위치크기->y;
              //}-----------------------------------------------------------------------------

              if(_GCheckButton_확인_(p_묶음이동_GCheckButton, NULL, d_읽기) == true)
              {
                선택된_그림부품_묶음이동(부품_ID, 생성항목->모체ID);

              }

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "폭", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          _GDotMatrix_폭_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "폭", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "높이", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          _GDotMatrix_높이_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "높이", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "그림영역높이", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수:양수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          _GDotMatrix_그림영역높이_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "그림영역높이", 문자열2);

          //}

          //[문자열 출력 반영 확인]
          //{
              //[설명!!!][3028.07.16.월][추가!!!]{--------------------------------
              //문자열을 출력하여 반영된것을 보여준다.
              //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
              //}---------------------------------------------------------------

              _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

              if(_Str_일치확인_(문자열1, "", true) != true)
              {
                _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

              }
              else
              {
                _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

              }

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "그림영역폭", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수:양수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          _GDotMatrix_그림영역폭_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "그림영역폭", 문자열2);

          //}

          //[문자열 출력 반영 확인]
          //{
              //[설명!!!][3028.07.16.월][추가!!!]{--------------------------------
              //문자열을 출력하여 반영된것을 보여준다.
              //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
              //}---------------------------------------------------------------

              _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

              if(_Str_일치확인_(문자열1, "", true) != true)
              {
                _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

              }
              else
              {
                _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

              }

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "배경색", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          _GDotMatrix_배경색_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "배경색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구종류", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          //[반영]
          //{
              //항목선택은 0 부터, 종류는 1 부터 시작하므로 (+1) 값으로 설정---------------v
              전광판전구설정정보.종류 = _GList_항목선택_(p_속성수정_GList, NULL, d_읽기) + 1;

              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_전구종류(부품_ID, "전구종류", 전광판전구설정정보.종류);

          //}

        }
        else
        {
          속성_수정_전구종류_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구크기", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          //{
              전광판전구설정정보.크기 = 항목수정정보.처리된값;

              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구크기", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구켜기색", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          //{
              전광판전구설정정보.켜기색 = 항목수정정보.처리된값;

              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구켜기색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구끄기색", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          //{
              전광판전구설정정보.끄기색 = 항목수정정보.처리된값;

              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구끄기색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구테두리", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[bool]
        //}-------------------------

        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  전광판전구설정정보.테두리유무 = true;

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "전구테두리", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  전광판전구설정정보.테두리유무 = false;

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "전구테두리", false);

                } break;

              }

          //}

          //[반영]
          //{
              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구테두리색", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          //{
              전광판전구설정정보.테두리색 = 항목수정정보.처리된값;

              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구테두리색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구배경색", true) == true)
      {
        //[2018.07.15.일][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          //현재 [전구설정정보] 를 먼저 읽어 들인다.
          _GDotMatrix_전구설정정보_(생성항목->생성자,
                                 &(전광판전구설정정보.종류),
                                 &(전광판전구설정정보.크기),
                                 &(전광판전구설정정보.켜기색),
                                 &(전광판전구설정정보.끄기색),
                                 &(전광판전구설정정보.테두리유무),
                                 &(전광판전구설정정보.테두리색),
                                 &(전광판전구설정정보.배경색));

          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          //{
              전광판전구설정정보.배경색 = 항목수정정보.처리된값;

              _GDotMatrix_전구설정_(생성항목->생성자,
                                  전광판전구설정정보.종류,
                                  전광판전구설정정보.크기,
                                  전광판전구설정정보.켜기색,
                                  전광판전구설정정보.끄기색,
                                  전광판전구설정정보.테두리유무,
                                  전광판전구설정정보.테두리색,
                                  전광판전구설정정보.배경색);

              //[문자열 출력 반영 확인]
              //{
                  //[설명!!!]{-------------------------------------------------------
                  //문자열을 출력하여 반영된것을 보여준다.
                  //[이동문자열] 이 설정된 상태라면 [이동문자열] 을, 그렇지 않다면 [이름] 을 출력.
                  //}---------------------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

          //}

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구배경색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구배치X", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[반영]
          _GDotMatrix_전구배치X_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구배치X", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구배치Y", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[반영]
          _GDotMatrix_전구배치Y_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구배치Y", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구배치간격", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[반영]
          _GDotMatrix_전구배치간격_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구배치간격", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구투명", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_전구투명_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "전구투명", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_전구투명_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "전구투명", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "전구투명색", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          _GDotMatrix_전구투명색_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "전구투명색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이동", true) == true)
      {
        //[2018.07.13.금][추가!!!]{------------------------------------------
        //[2018.07.16.월][수정!!!]-------------------------------------------
        //[이동문자열] 이 없는 경우는 <true> 로 설정해도 반영되지 않고 <false> 가 되므로
        //[이동문자열] 유/무 를 먼저 검사하고 처리한다.
        //}-----------------------------------------------------------------

        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
          {
            case 0 : //true.
            {
              //[이동문자열:존재확인]
              //{
                  //[2018.07.16.월][추가!!!]{------------
                  //[이동문자열] 이 없는 경우는 처리하지 않는다.
                  //}-----------------------------------

                  if(속성_수정_항목의_값이_비어있는지_확인("이동문자열") == true)
                  {
                    Ide_알림(d_정보, "[이동문자열] 이 존재하는 경우만 활성화 가능!");

                    break;

                  }

              //}

              //[반영]
              _GDotMatrix_이동_(생성항목->생성자, true, d_쓰기);

              //[수정기록][2018.12.05.수][추가]
              //[이동] 의 경우는 다른 <bool> 처리와는 달리 위의 <if> 문에서 <return> 될수 있으므로
              //[반영] 부분에서 각각 처리한다.

              //[항목 수정]
              //{
                  //[2019.01.07.월][수정]
                  속성_수정_기록_Bool(부품_ID, "이동", true);

              //}

            } break;

            case 1 : //false.
            {
              //[반영]
              _GDotMatrix_이동_(생성항목->생성자, false, d_쓰기);

              //[항목 수정]
              //{
                  //[2019.01.07.월][수정]
                  속성_수정_기록_Bool(부품_ID, "이동", false);

              //}

              //[2018.07.16.월][추가!!!]
              //{
                  //[주의!!!]{-------------------------------------------
                  //[이동:false] 인 경우는 [이동문자열] 이 회전중에 정지하게 되므로
                  //[이동문자열] 을 다시 출력하여 정렬해준다.
                  //}---------------------------------------------------

                  _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_읽기);

                  if(_Str_일치확인_(문자열1, "", true) != true)
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);


                  }
                  else
                  {
                    _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

                  }

              //}

            } break;

          }

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이동간격", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          _GDotMatrix_이동간격_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "이동간격", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이동문자열", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //수정할 문자열 읽기.
          _GEdit_문자열_(p_속성수정_GEdit, 문자열1, d_읽기);

          //[반영]
          _GDotMatrix_이동문자열_(생성항목->생성자, 문자열1, d_쓰기);

          //반영확인.
          if(_Str_일치확인_(문자열1, "", true) != true)
          {
            _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 문자열1);

          }
          else
          {
            _GDotMatrix_문자열출력_(생성항목->생성자, 0, 0, 생성항목->이름);

            //[2018.07.16.월][추가!!!]
            //{
                //[주의!!!]{-----------------------------------------
                //[이동문자열] 이 "" 이 되는 경우는 [이동:false] 로 전환필요.
                //}-------------------------------------------------

                _GDotMatrix_이동_(생성항목->생성자, false, d_쓰기);

                속성_수정_Bool("이동", false, NULL);

            //}

          }

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "이동문자열", 문자열1);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이동문자열간격", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[10진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[반영]
          _GDotMatrix_이동문자열간격_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "이동문자열간격", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이동시간간격", true) == true)
      {
        //[2018.07.13.금][추가!!!]{--------------------------------------
        //[10진수]
        //
        //[주의!!!][2018.07.16.월][수정!!!]*******************************
        //[폼디자인:모드] 에서는 0.1초 이하의 경우 다른 모든 부분에 영향을 주기 때문에
        //0.1 초 이하로 설정하지 못하도록 수정.
        //API 롤 설정시 이하로 반영 가능.
        //}-------------------------------------------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_10진수(&항목수정정보) != true) return;

          //[양수:확인]{-------------------------------------------------
          if(속성_수정_값이_양수인지_확인(항목수정정보.처리된값) != true) return;
          //}----------------------------------------------------------

          //[값 범위 검사]
          //{
              //[2018.07.16.월][추가!!!]
              //[폼디자인:모드] 에서는 0.1초 이하로 설정하지 못하도록 처리.
              //이하로 설정한 경우는 반영하지 않는다.
              if(항목수정정보.처리된값 < 100)
              {
                Ide_알림(d_정보, "폼디자인 상에서는 다른 그림부품에 영향을 주지 않도록 100(0.1초) 이상 설정만 유효!");

                return;

              }

          //}

          //[반영]
          _GDotMatrix_이동시간간격_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "이동시간간격", 문자열2);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "테두리", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_테두리_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "테두리", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_테두리_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "테두리", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "테두리색", true) == true)
      {
        //[2018.07.13.금][추가!!!]{---
        //[16진수]
        //}--------------------------

        if(pT설정_F준비 == true)
        {
          if(속성항목수정_16진수(&항목수정정보) != true) return;

          //[반영]
          _GDotMatrix_테두리색_(생성항목->생성자, 항목수정정보.처리된값, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "테두리색", 문자열2);

          //}

        }
        else
        {
          속성항목준비_색상(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "풍선도움말", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_풍선도움말_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "풍선도움말", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_풍선도움말_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "풍선도움말", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "풍선도움말문자열", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //수정할 문자열 읽기.
          _GEdit_문자열_(p_속성수정_GEdit, 문자열1, d_읽기);

          //[반영]
          _GDotMatrix_풍선도움말문자열_(생성항목->생성자, 문자열1, d_쓰기);

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              속성_수정_기록_문자열(부품_ID, "풍선도움말문자열", 문자열1);

          //}

        }
        else
        {
          속성_수정_한줄편집기_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "유효", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //[그림부품] 에 직접 설정하지 않고 [생성관리자] 에 설정한다.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  생성항목->유효 = true;

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "유효", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  생성항목->유효 = false;

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "유효", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "보이기", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //[그림부품] 에 직접 설정하지 않고 [생성관리자] 에 설정한다.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  생성항목->보이기 = true;

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "보이기", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  생성항목->보이기 = false;

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "보이기", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이벤트_MDown", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MDown_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MDown", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MDown_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MDown", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이벤트_MUp", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MUp_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MUp", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MUp_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MUp", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이벤트_MClick", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MClick_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MClick", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MClick_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MClick", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이벤트_MEnter", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MEnter_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MEnter", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MEnter_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MEnter", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }
      else if(_Str_일치확인_(항목이름, "이벤트_MLeave", true) == true)
      {
        //[2018.07.13.금][추가!!!]
        if(pT설정_F준비 == true)
        {
          //[!]{---------------------------------------------------------
          //<true(0)/false(1)> 순으로 돼 있으므로 [번호] 만으로 간단하게 구분 처리.
          //}------------------------------------------------------------

          //[항목 수정]
          //{
              //[2019.01.07.월][수정]
              switch(_GList_항목선택_(p_속성수정_GList, NULL, d_읽기))
              {
                case 0 : //true.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MLeave_(생성항목->생성자, true, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MLeave", true);

                } break;

                case 1 : //false.
                {
                  //[반영]
                  _GDotMatrix_이벤트_MLeave_(생성항목->생성자, false, d_쓰기);

                  //[속성 수정]
                  속성_수정_기록_Bool(부품_ID, "이벤트_MLeave", false);

                } break;

              }

          //}

        }
        else
        {
          속성_수정_bool_보이기(&항목수정정보);

        }

      }

  //}

}

void GDotMatrix_폼디자인_선택된_그림부품_기본크기위치로_조정(struct ts_생성자  *p생성항목)
{
  //[2023.02.13.월][생성]

  _GX_위치설정_(p생성항목->생성자, 0, 0);
  _GX_크기설정_(p생성항목->생성자, 381, 75);

}

void GDotMatrix_폼디자인_문서_최적화(char  *pr기본문서_경로이름확장자)
{
  //[2023.02.14.화][생성]

  _Str_더하기_(pr기본문서_경로이름확장자, "기본값\\GDotMatrix.fmdv");

}

void GDotMatrix_폼디자인_문서_복원_보이기(struct ts_생성자  *p생성항목,
                                     t_u1             p동작구분)
{
  //[2023.02.14.화][생성]

  //[VAR]
  //{
      char  문자열[1024];

  //}

  if((p동작구분 & d_폼디자인) && (p동작구분 != d_속성)) { _GDotMatrix_보이기_(p생성항목->생성자, true, d_쓰기); }

  //[문자열 출력]
  //{
      //[설정상태] 를 알수 있도록 문자열을 출력.
      _GDotMatrix_이동문자열_(p생성항목->생성자, 문자열, d_읽기);

      if(_Str_일치확인_(문자열, "", true) != true)
      {
        _GDotMatrix_문자열출력_(p생성항목->생성자, 0, 0, 문자열);

      }
      else
      {
        _GDotMatrix_문자열출력_(p생성항목->생성자, 0, 0, p생성항목->이름);

      }

  //}

}

bool GDotMatrix_폼디자인_문서_복원(struct ts_생성자  **p생성항목,
                               struct ts_생성자  **p모체항목,
                               t_생성자          **p모체생성자,
                               t_u1               p동작구분,
                               t_u2               pID,
                               bool               pID포함복원,
                               char              *p항목,
                               char              *p내용,
                               t_생성자           *p_디자인판_GLabel,
                               int                p_미리보기보정값x,
                               int                p_미리보기보정값y)
{
  //[2023.02.17.금][생성]

  //[VAR]
  //{
      int                      X, Y, 폭, 높이;

      t_u2                     복원_ID;

      char                     경로이름확장자[1024];

      //[전광판:전구설정정보] 관리용.
      struct ts_전광판전구설정정보  전광판전구설정정보;

  //}

  //[생성항목 얻기]
  //{
      //[중요]{-------------------------------------------------------------------
      //[그림부품] 생성전에 [생성자] 를 얻어 놓는다.
      //이는 실제 [그림부품] 생성 전에 [이름] 등 [생성항목] 에 추가해야 하는 정보가 있기 때문이다.
      //
      //[참고][2018.11.26.월]******************************************************
      //<p동작구분:d_속성> 의 경우는 이 함수 시작부분에서 <pID> 로 [생성항목] 을 구했으므로
      //NULL 이 아니게 되어 자연스럽게 [생성] 하지 않게 된다.
      //}-------------------------------------------------------------------------

      //한번만 생성되도록 처리.
      if((*p생성항목) == NULL)
      {
        if(생성관리_생성자_얻기(&(*p생성항목)) != true) return(false);

      }

  //}

  if     (_Str_일치확인_(p항목, "이름", true) == true)
  {
    _Str_할당_((*p생성항목)->이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "ID", true) == true)
  {
    //[2019.01.11.금][추가]{----------------------------
    //<pID포함복원:true> 인 경우만 의미가 있으나 <*.fmdsn> 에
    //포함된 정보이므로 일단 읽어 놓는다.
    //}------------------------------------------------

    복원_ID = 변환_10진수표기_Long값(p내용);

  }
  else if(_Str_일치확인_(p항목, "모체", true) == true)
  {
    //[되돌리기/되살리기]
    //{
        //[2018.11.26.월][추가]{--------------
        //[모체] 는 [속성] 처리 대상이 아니다.
        //
        //[중요][2019.02.10.일][주석처리]-------
        //[모체] 도 [속성] 대상이 됐으므로 주석처리.
        //}----------------------------------

        //if(p동작구분 == d_속성) continue;

    //}

    if(_Str_일치확인_(p내용, "", true) == true)
    {
      if(p동작구분 == d_미리보기) { (*p모체생성자) = NULL;            }
      else                    { (*p모체생성자) = p_디자인판_GLabel; }

      //[모체] 가 없는 것.
      (*p생성항목)->모체ID = NULL;

      //[되돌리기/되살리기]
      //{
          //[2019.02.10.일][추가]{----------------
          //[속성] 인 경우는 직접 [모체] 를 변경해 준다.
          //
          //[모체:0] 인 경우를 처리.
          //}------------------------------------

          if(p동작구분 == d_속성)
          {
            _GX_모체지정_((*p생성항목)->생성자, p_디자인판_GLabel);

          }

      //}

    }
    else
    {
      if(생성관리_이름으로_생성자_찾기(p내용, &(*p모체항목)) != true) return(false);

      (*p모체생성자) = (*p모체항목)->생성자;

      //[주의!!!]{---------------------------------------------------------------------
      //다른 곳에서 자동으로  채워지지 않으므로 여기서 반드시 설정필요.
      //[속성] 에서 바로 반영되므로 여기서 설정하지 않으면 0 으로 되어 저장시 [모체:NULL] 로 저장된다.
      (*p생성항목)->모체ID = _Gui_ID_읽기((*p모체항목)->생성자);
      //}-----------------------------------------------------------------------------

      //[되돌리기/되살리기]
      //{
          //[2019.02.10.일][추가]{----------------
          //[속성] 인 경우는 직접 [모체] 를 변경해 준다.
          //
          //[모체:존재] 인 경우를 처리.
          //}------------------------------------

          if(p동작구분 == d_속성)
          {
            _GX_모체지정_((*p생성항목)->생성자, (*p모체항목)->생성자);

          }

      //}

    }

  }
  else if(_Str_일치확인_(p항목, "X", true) == true)
  {
    X = 변환_10진수표기_Long값(p내용);

    //[되돌리기/되살리기]
    //{
        //[2018.11.26.월][추가]{---------------------------------------
        //[속성] 인 경우는 지정 [ID] 에 해당하는 [그림부품] 을 대상으로 직접 처리.
        //}-----------------------------------------------------------

        if(p동작구분 == d_속성){ _GDotMatrix_X_((*p생성항목)->생성자, X, d_쓰기); }

    //}

  }
  else if(_Str_일치확인_(p항목, "Y", true) == true)
  {
    Y = 변환_10진수표기_Long값(p내용);

    //[되돌리기/되살리기]
    //{
        //[2018.11.26.월][추가]{---------------------------------------
        //[속성] 인 경우는 지정 [ID] 에 해당하는 [그림부품] 을 대상으로 직접 처리.
        //}-----------------------------------------------------------

        if(p동작구분 == d_속성){ _GDotMatrix_Y_((*p생성항목)->생성자, Y, d_쓰기); }

    //}

  }
  else if(_Str_일치확인_(p항목, "폭", true) == true)
  {
    폭 = 변환_10진수표기_Long값(p내용);

    //[되돌리기/되살리기]
    //{
        //[2018.11.26.월][추가]{---------------------------------------
        //[속성] 인 경우는 지정 [ID] 에 해당하는 [그림부품] 을 대상으로 직접 처리.
        //}-----------------------------------------------------------

        if(p동작구분 == d_속성){ _GDotMatrix_폭_((*p생성항목)->생성자, 폭, d_쓰기); }

    //}

  }
  else if(_Str_일치확인_(p항목, "높이", true) == true)
  {
    높이 = 변환_10진수표기_Long값(p내용);

    //[되돌리기/되살리기]
    //{
        //[2018.11.26.월][추가]{---------------------------------------
        //[속성] 인 경우는 지정 [ID] 에 해당하는 [그림부품] 을 대상으로 직접 처리.
        //}-----------------------------------------------------------

        if(p동작구분 == d_속성)
        {
          _GDotMatrix_높이_((*p생성항목)->생성자, 높이, d_쓰기);

          //아래 [생성] 부분을 처리하지 않도록 건너뛴다.
          return(true);

        }

    //}

    //[그림부품:생성]
    //{
        //[!]{-------------------------------------
        //생성에 필요한 인수를 모든 얻은 여기서 [생성] 한다.
        //여기서는 아직 보이지 않는다.
        //}----------------------------------------

        //[ID:생성]
        //{
            //[2019.01.11.금][추가]{-----------------------------------------
            //<*.fmdsn> 문서의 [ID] 를 그대로 사용하는 경우가 아닐때만 새로운 ID 생성.
            //}-------------------------------------------------------------

            if(pID포함복원 != true) { 복원_ID = _Gui_ID_생성(); }

        //}

        if((p동작구분 == d_미리보기) && ((*p생성항목)->모체ID == NULL))
        {
          //[2018.08.14.화][추가!!!]{---------------------------------------------
          //[미리보기] 시에 [그림부품] 들이 [화면가운데] 를 중심으로 분포 되도록 위치를 조정.
          //[보정값] 은 <폼디자인_문서_미리보기()> 에서 <폼디자인_분포정보_얻기()> 로 구해진다.
          //단, [모체:NULL] 로 화면에 생성되는 그림부품만을 대상으로 한다.
          //}--------------------------------------------------------------------

          _GDotMatrix_생성_((*p생성항목)->생성자, (*p모체생성자), 복원_ID, X - p_미리보기보정값x, Y - p_미리보기보정값y, 폭, 높이, false);

        }
        else
        {
          _GDotMatrix_생성_((*p생성항목)->생성자, (*p모체생성자), 복원_ID, X, Y, 폭, 높이, false);

        }

        //[되돌리기/되살리기]
        //{
            //[2018.11.26.월][추가]{----------------------
            //ID 를 원래 [그림부품:ID] 인 <pID> 로 돌려 놓는다.
            //}------------------------------------------

            if(p동작구분 == d_그림부품) { _Gui_ID_수정((*p생성항목)->생성자, pID); }

        //}

    //}

    //[기본값:설정]
    //{
        _GDotMatrix_전구설정_((*p생성항목)->생성자, 2, 5, clGray, clWhite, true, clGray, clWhite);
        _GDotMatrix_전구배치간격_((*p생성항목)->생성자, 1, d_쓰기);
        _GDotMatrix_테두리_((*p생성항목)->생성자, true, d_쓰기);

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    //[창:제목:설정]
    //{
        //[2018.10.16.화][추가!!!]{----------------------------
        //[독립창] 으로 구동되는 경우 [작업표시줄] 에 보여질 [이름] 설정.
        //[그림부품:이름] 과 일치하도록 설정.
        //}---------------------------------------------------

        _GX_표시되는_이름설정_((*p생성항목)->생성자, (*p생성항목)->이름);

    //}

  }
  else if(_Str_일치확인_(p항목, "그림영역높이", true) == true)
  {
    _GDotMatrix_그림영역높이_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "그림영역폭", true) == true)
  {
    _GDotMatrix_그림영역폭_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "배경색", true) == true)
  {
    //"0x" 다음부터 변환 지정---------------------------------------------v
    _GDotMatrix_배경색_((*p생성항목)->생성자, _Conv_16진수표기_Long값_(&(p내용[2])), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "전구종류", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    if     (_Str_일치확인_(p내용, "원형", true) == true)
    {
      전광판전구설정정보.종류 = 1;

    }
    else if(_Str_일치확인_(p내용, "사각형", true) == true)
    {
      전광판전구설정정보.종류 = 2;

    }
    else if(_Str_일치확인_(p내용, "둥근사각형", true) == true)
    {
      전광판전구설정정보.종류 = 3;

    }

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구크기", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    전광판전구설정정보.크기 = 변환_10진수표기_Long값(p내용);

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구켜기색", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    //"0x" 다음부터 변환 지정------------------------------v
    전광판전구설정정보.켜기색 = _Conv_16진수표기_Long값_(&(p내용[2]));

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구끄기색", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    //"0x" 다음부터 변환 지정------------------------------v
    전광판전구설정정보.끄기색 = _Conv_16진수표기_Long값_(&(p내용[2]));

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구테두리", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      전광판전구설정정보.테두리유무 = true;

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      전광판전구설정정보.테두리유무 = false;

    }

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구테두리색", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    //"0x" 다음부터 변환 지정--------------------------------v
    전광판전구설정정보.테두리색 = _Conv_16진수표기_Long값_(&(p내용[2]));

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구배경색", true) == true)
  {
    //[전구 설정 정보 얻기]
    //{
        //[중요][2019.02.13.수][추가]{--------------------------------------------
        //[전광판] 의 <전광판전구설정정보> 는 [개별:설정] 항목이 아니라 한번에 설정하는 것이므로
        //
        //1) 기존 설정 모두 읽기.
        //2) 개별 속성 설정.
        //3) 설정 적용.
        //
        //의 순서로 처리해야 한다.
        //
        //[참고]----------------------------------------------------------------
        //[속성] 을 수정하는 <폼디자인_속성탭의_속성_수정> 에서는 1) - 3) 의 과정을 거쳐서
        //처리했으나 [되돌리기/되살리기] 부분에서는 이 함수를 사용하여 [속성] 을 처리하므로
        //반드시 이 부분이 있어야 한다.
        //오늘 [되돌리기/되살리기] 중 오류를 발견하고 추가한다.
        //}--------------------------------------------------------------------

        _GDotMatrix_전구설정정보_((*p생성항목)->생성자,
                               &(전광판전구설정정보.종류),
                               &(전광판전구설정정보.크기),
                               &(전광판전구설정정보.켜기색),
                               &(전광판전구설정정보.끄기색),
                               &(전광판전구설정정보.테두리유무),
                               &(전광판전구설정정보.테두리색),
                               &(전광판전구설정정보.배경색));

    //}

    //"0x" 다음부터 변환 지정------------------------------v
    전광판전구설정정보.배경색 = _Conv_16진수표기_Long값_(&(p내용[2]));

    //전구 설정 정보가 모두 수집된 이 시점에서 [전구설정].
    _GDotMatrix_전구설정_((*p생성항목)->생성자,
                        전광판전구설정정보.종류,
                        전광판전구설정정보.크기,
                        전광판전구설정정보.켜기색,
                        전광판전구설정정보.끄기색,
                        전광판전구설정정보.테두리유무,
                        전광판전구설정정보.테두리색,
                        전광판전구설정정보.배경색);

  }
  else if(_Str_일치확인_(p항목, "전구배치X", true) == true)
  {
    _GDotMatrix_전구배치X_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "전구배치Y", true) == true)
  {
    _GDotMatrix_전구배치Y_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "전구배치간격", true) == true)
  {
    _GDotMatrix_전구배치간격_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "전구투명", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_전구투명_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_전구투명_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "전구투명색", true) == true)
  {
    //"0x" 다음부터 변환 지정------------------------------------------------v
    _GDotMatrix_전구투명색_((*p생성항목)->생성자, _Conv_16진수표기_Long값_(&(p내용[2])), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "이동", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_이동_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_이동_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "이동간격", true) == true)
  {
    _GDotMatrix_이동간격_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "이동문자열", true) == true)
  {
    _GDotMatrix_이동문자열_((*p생성항목)->생성자, p내용, d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "이동문자열간격", true) == true)
  {
    _GDotMatrix_이동문자열간격_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "이동시간간격", true) == true)
  {
    _GDotMatrix_이동시간간격_((*p생성항목)->생성자, 변환_10진수표기_Long값(p내용), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "테두리", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_테두리_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_테두리_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "테두리색", true) == true)
  {
    //"0x" 다음부터 변환 지정-----------------------------------------------v
    _GDotMatrix_테두리색_((*p생성항목)->생성자, _Conv_16진수표기_Long값_(&(p내용[2])), d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "풍선도움말", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_풍선도움말_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_풍선도움말_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "풍선도움말문자열", true) == true)
  {
    _GDotMatrix_풍선도움말문자열_((*p생성항목)->생성자, p내용, d_쓰기);

  }
  else if(_Str_일치확인_(p항목, "유효", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      (*p생성항목)->유효 = true;

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      (*p생성항목)->유효 = false;

    }

    if(p동작구분 == d_미리보기) { _GDotMatrix_유효_((*p생성항목)->생성자, (*p생성항목)->유효, d_쓰기); }

  }
  else if(_Str_일치확인_(p항목, "보이기", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      (*p생성항목)->보이기 = true;

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      (*p생성항목)->보이기 = false;

    }

    if(p동작구분 == d_미리보기) { _GDotMatrix_보이기_((*p생성항목)->생성자, (*p생성항목)->보이기, d_쓰기); }

  }
  else if(_Str_일치확인_(p항목, "이벤트_MDown", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_이벤트_MDown_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_이벤트_MDown_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "이벤트_MUp", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_이벤트_MUp_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_이벤트_MUp_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "이벤트_MClick", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_이벤트_MClick_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_이벤트_MClick_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "이벤트_MEnter", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_이벤트_MEnter_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_이벤트_MEnter_((*p생성항목)->생성자, false, d_쓰기);

    }

  }
  else if(_Str_일치확인_(p항목, "이벤트_MLeave", true) == true)
  {
    if     (_Str_일치확인_(p내용, "true", true) == true)
    {
      _GDotMatrix_이벤트_MLeave_((*p생성항목)->생성자, true, d_쓰기);

    }
    else if(_Str_일치확인_(p내용, "false", true) == true)
    {
      _GDotMatrix_이벤트_MLeave_((*p생성항목)->생성자, false, d_쓰기);

    }

  }

  return(true);

}

void GDotMatrix_폼디자인_문서_맷돌C_번역(char  *p문서_c,
                                    char  *p문서_h,
                                    char  *p문서_l,
                                    char  *p문서_d,
                                    char  *p문서_nm,
                                    char  *p문서_e,
                                    char  *p항목,
                                    char  *p이름,
                                    char  *p내용)
{
  //[2023.02.19.일][생성]

  //[VAR]
  //{
      bool  모체유무;

      char  문자열[1024];

      //[전광판 관련]
      //{
          //[전광판:전구설정정보] 관리용.
          struct ts_전광판전구설정정보  전광판_전구설정정보;

      //}

  //}

  if     (_Str_일치확인_(p항목, "이름", true) == true)
  {
    맷돌C_번역_이름(p문서_c, p문서_h, p문서_l, "_GDotMatrix_생성_", p이름, p내용);

    //[2018.10.05.금][추가!!!]
    맷돌C_번역_소멸자_수집(p문서_d, p문서_l, "_GDotMatrix_삭제_", p이름);

  }
  else if(_Str_일치확인_(p항목, "모체", true) == true)
  {
    모체유무 = 맷돌C_번역_모체(p문서_c, p내용);

    //[모체없는 그림부품 수집]
    //{
        //[2018.10.22.월][추가!!!]
        맷돌C_번역_모체없는_그림부품_수집(p문서_nm, p이름, "_GDotMatrix_유효_", p내용);

    //}

  }
  else if(_Str_일치확인_(p항목, "X", true) == true)
  {
    맷돌C_번역_X(p문서_c, p내용, 모체유무);

  }
  else if(_Str_일치확인_(p항목, "Y", true) == true)
  {
    맷돌C_번역_Y(p문서_c, p내용, 모체유무);

  }
  else if(_Str_일치확인_(p항목, "폭", true) == true)
  {
    맷돌C_번역_폭(p문서_c, p내용);

  }
  else if(_Str_일치확인_(p항목, "높이", true) == true)
  {
    맷돌C_번역_높이(p문서_c, p내용);

    //[기본값:설정]
    //{
        _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 2, 5, clGray, clWhite, true, clGray, clWhite);\r\n");

        _Str_더하기_(p문서_c, "      _GDotMatrix_전구배치간격_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 1, d_쓰기);\r\n");

        _Str_더하기_(p문서_c, "      _GDotMatrix_테두리_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", true, d_쓰기);\r\n");

        _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정정보_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", &(전광판전구설정정보.종류), &(전광판전구설정정보.크기), &(전광판전구설정정보.켜기색), &(전광판전구설정정보.끄기색), &(전광판전구설정정보.테두리유무), &(전광판전구설정정보.테두리색), &(전광판전구설정정보.배경색));\r\n");

        //[함수묶음목록.gtxt]
        //{
            //[2018.10.05.금][추가!!!]
            맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");
            맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구배치간격_");
            맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_테두리_");
            맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정정보_");

        //}

    //}

  }
  else if(_Str_일치확인_(p항목, "그림영역높이", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_그림영역높이_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "그림영역폭", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_그림영역폭_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "배경색", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_배경색_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "전구종류", true) == true)
  {
    if     (_Str_일치확인_(p내용, "원형", true) == true)
    {
      전광판_전구설정정보.종류 = 1;

    }
    else if(_Str_일치확인_(p내용, "사각형", true) == true)
    {
      전광판_전구설정정보.종류 = 2;

    }
    else if(_Str_일치확인_(p내용, "둥근사각형", true) == true)
    {
      전광판_전구설정정보.종류 = 3;

    }

    _Str_더하기_(p문서_c, "      전광판전구설정정보.종류 = "); _Conv_Long값_문자열_(전광판_전구설정정보.종류, 0, true, false, 문자열); _Str_더하기_(p문서_c, 문자열); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구크기", true) == true)
  {
    _Str_더하기_(p문서_c, "      전광판전구설정정보.크기 = ");  _Str_더하기_(p문서_c, p내용); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구켜기색", true) == true)
  {
    _Str_더하기_(p문서_c, "      전광판전구설정정보.켜기색 = ");  _Str_더하기_(p문서_c, p내용); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구끄기색", true) == true)
  {
    _Str_더하기_(p문서_c, "      전광판전구설정정보.끄기색 = ");  _Str_더하기_(p문서_c, p내용); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구테두리", true) == true)
  {
    _Str_더하기_(p문서_c, "      전광판전구설정정보.테두리유무 = ");  _Str_더하기_(p문서_c, p내용); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구테두리색", true) == true)
  {
    _Str_더하기_(p문서_c, "      전광판전구설정정보.테두리색 = ");  _Str_더하기_(p문서_c, p내용); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구배경색", true) == true)
  {
    _Str_더하기_(p문서_c, "      전광판전구설정정보.배경색 = ");  _Str_더하기_(p문서_c, p내용); _Str_더하기_(p문서_c, ";\r\n");

    _Str_더하기_(p문서_c, "      _GDotMatrix_전구설정_("); _Str_더하기_(p문서_c, p이름); _Str_더하기_(p문서_c, ", 전광판전구설정정보.종류, 전광판전구설정정보.크기, 전광판전구설정정보.켜기색, 전광판전구설정정보.끄기색, 전광판전구설정정보.테두리유무, 전광판전구설정정보.테두리색, 전광판전구설정정보.배경색);\r\n");

    //[함수묶음목록.gtxt]
    //{
        //[2018.10.05.금][추가!!!]
        맷돌C_번역_함수묶음_수집(p문서_l, "_GDotMatrix_전구설정_");

    //}

  }
  else if(_Str_일치확인_(p항목, "전구배치X", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_전구배치X_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "전구배치Y", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_전구배치Y_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "전구배치간격", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_전구배치간격_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "전구투명", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_전구투명_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "전구투명색", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_전구투명색_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이동", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_이동_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이동간격", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_이동간격_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이동문자열", true) == true)
  {
    맷돌C_번역_문자열(p문서_c, p문서_l, "_GDotMatrix_이동문자열_", p이름, p내용, false);

  }
  else if(_Str_일치확인_(p항목, "이동문자열간격", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_이동문자열간격_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이동시간간격", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_이동시간간격_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "테두리", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_테두리_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "테두리색", true) == true)
  {
    맷돌C_번역_값(p문서_c, p문서_l, "_GDotMatrix_테두리색_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "풍선도움말", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_풍선도움말_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "풍선도움말문자열", true) == true)
  {
    맷돌C_번역_문자열(p문서_c, p문서_l, "_GDotMatrix_풍선도움말문자열_", p이름, p내용, false);

  }
  else if(_Str_일치확인_(p항목, "유효", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_유효_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "보이기", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_보이기_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이벤트_MDown", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_이벤트_MDown_", p이름, p내용);

    //[2018.10.17.수][추가!!!]
    맷돌C_번역_이벤트_수집(p문서_e, "_GDotMatrix_이벤트_MDown_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이벤트_MUp", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_이벤트_MUp_", p이름, p내용);

    //[2018.10.17.수][추가!!!]
    맷돌C_번역_이벤트_수집(p문서_e, "_GDotMatrix_이벤트_MUp_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이벤트_MClick", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_이벤트_MClick_", p이름, p내용);

    //[2018.10.17.수][추가!!!]
    맷돌C_번역_이벤트_수집(p문서_e, "_GDotMatrix_이벤트_MClick_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이벤트_MEnter", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_이벤트_MEnter_", p이름, p내용);

    //[2018.10.17.수][추가!!!]
    맷돌C_번역_이벤트_수집(p문서_e, "_GDotMatrix_이벤트_MEnter_", p이름, p내용);

  }
  else if(_Str_일치확인_(p항목, "이벤트_MLeave", true) == true)
  {
    맷돌C_번역_bool(p문서_c, p문서_l, "_GDotMatrix_이벤트_MLeave_", p이름, p내용);

    //[2018.10.17.수][추가!!!]
    맷돌C_번역_이벤트_수집(p문서_e, "_GDotMatrix_이벤트_MLeave_", p이름, p내용);

  }

}

