//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "optionIde_DialogBox.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
ToptionIde_DialogBox_Form *optionIde_DialogBox_Form;
//---------------------------------------------------------------------------


#include "main.h"
#include "ide_main.h"
#include "ide_library.h"
#include "ide_msgbox.h"
#include "gui.h"

//[2009.04.20.월][추가!!!]
#include "editor_edit.h"
#include "ide_editor.h"
#include "tree_tree.h"
#include "msg_msg.h"
#include "ide_BalloonBox.h"

//[2018.02.18.일][추가!!!]
#include "ide_buttons.h"


//[설명!!!]
//{
    //[2007.12.15.토]{------------------------------------------------------------------
    //[통합개발환경] 의 모든 관련 부분을 설정한다.
    //각종 색 정보, [편집기] 색 설정등을 각각의 [페이지] 로 나누어서 보여주고 처리한다.
    //}---------------------------------------------------------------------------------
//}


//[서브클래싱]------------------------------------------------------------------

void __fastcall ToptionIde_DialogBox_Form::WndProc(Messages::TMessage  &Message)
{
  //[설명!!!]{--------------------------------------------------------------------
  //TForm 의 경우는 바탕을 칠하고 OnPaint() 를 발생하게 되므로 실제 _Draw() 를
  //OnPaint() 에서 사용하는 경우는 크기가 변경되는 경우 바로 칠해지지 않아서
  //하얀색 바탕이 그대로 나오게 되어 보기 좋지 않게 된다.
  //따라서 TForm 자체의 바탕을 그리는 WM_ERASEBKGND 에서 바로 _Draw() 를 사용하여
  //그리고 OnPaint() 는 처리하지 않는다.
  //C++Builder 와 같이 완벽하게 처리되는 깜박임이 전혀 없는 화면을 만들수 있다.
  //
  //[2012.05.20.일][수정!!!]------------------------------------------------------
  //}-----------------------------------------------------------------------------

  if     (Message.Msg == WM_ERASEBKGND)
  {
    _Draw();

    //바로 죵료하지 않으면 WM_ERASEBKGND 메세지가 다음 TForm::WndProc(Message); 에서
    //다시 처리 되어 TForm->Color 로 칠해지게 되어 _Draw() 로 그린 것이 다 지워지므로
    //바로 종료한다.
    return;

  }
  else if(Message.Msg == WM_KEYDOWN)
  {
    //[2012.05.20.일][추가!!!]{----
    //<ESC 키> 처리를 위하여 추가.
    //}----------------------------

    switch(Message.WParam)
    {
      case VK_ESCAPE : //[키:ESC]
      {
        //[대화상자] 닫기.
        _EVENT_CloseButton_Click();

        Message.Result = true;
        return;

      } break;

    }

  }

  //[기본처리]
  //{
      //기본 메세지는 반드시 처리 되어야 한다.
      TForm::WndProc(Message);
  //}

  return;

}

//------------------------------------------------------------------------------

__fastcall ToptionIde_DialogBox_Form::ToptionIde_DialogBox_Form(TComponent* Owner)
        : TForm(Owner)
{
  //[VAR]
  //{
      AnsiString     bmp_path;
      int            width, height;

      TRect          colorBoxTRect;
      int            w, h;

      int            i;

  //}

  //[환경변수]
  //{
      //[2007.10.02.화][추가!!!]
      IDE_Get_Option(&_ide_option);

  //}

  //[초기화]
  //{
      //--------------------------------------------------------------------------
      //크기는 표시되는 내용에 따라 자동으로 처리 되지만 일단 임의 값을 기록한다.
      this->Left     = 0;
      this->Top      = 0;
      this->Width    = 341;
      this->Height   = 301;
      this->Color    = clWhite;

      //실제 그림 영역을 생성한다.
      _bmp_ = new Graphics::TBitmap;

      //그림 영역 크기 설정.
      _bmp_->Width       = this->Width;
      _bmp_->Height      = this->Height;

      //24bit bitmap 으로 지정한다.
      _bmp_->PixelFormat = pf24bit;
      //--------------------------------------------------------------------------
  //}

  //[글꼴 설정]
  //{
      //[기본 끌꼴 등록]{------------------------------------------------
      //모든 프로그램에서 기본적으로 사용하는 [system 글꼴] 을 등록한다.
      FONTPACK_SetDefault(&_font);
      //}----------------------------------------------------------------

      //[editor debug margin]
      //{
          _font.margin_size = 0;

      //}

      //문자 margin 을 설정한다.
      _font.offset_left   = 0;
      _font.offset_right  = 0;
      _font.offset_top    = 0;
      _font.offset_bottom = 0;

      //[2010.01.26.화][추가!!!]{---
      _font.en_offset_left  = 0;
      _font.en_offset_right = 0;
      //}---------------------------

  //}

  //[속성초기화]
  //{
      //기본적으로 선택되지 않은 상태.
      _caption_selected = false;

  //}

  //[caption 설정]
  //{
      //caption 문자열.(크게 바뀔일이 없다.)
      STR_Assign(_caption, " 기계닉스 설정 대화상자 ");

      //높이 지정.
      _caption_height = 22;

      //caption 문자열의 width 를 구한다.
      FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, _caption, &width, &height);

      //실제 사용할 caption 폭을 설정한다.
      //_font.margin_size 는 처음 기본값인 0 을 사용한다.(한번만 그려주면 된다.)
      _caption_width = width + (_font.margin_size * 2) + 2;

  //}

  //[컨트롤 생성]
  //{
      //[닫기 버튼]
      //{
          _close_bmpbtns          = new Tgui_bmpbutton_Form(this);
          _close_bmpbtns->Parent  = this;
          _close_bmpbtns->Visible = true;

          //[초기화]
          //{
              //그림 할당하기.
              bmp_path = ExtractFilePath(Application->ExeName) + "sysbmp\\control\\close.bmp";

              _close_bmpbtns->_Top(0);
              _close_bmpbtns->_Width(12);
              _close_bmpbtns->_Left(0);
              _close_bmpbtns->_Height(12);
              _close_bmpbtns->_Border(true);
              _close_bmpbtns->_Bitmap(bmp_path);
              _close_bmpbtns->_Image_Width(12);
              _close_bmpbtns->_Image_Height(12);

              //동작함수 등록.
              _close_bmpbtns->_EVENT_Click = _EVENT_CloseButton_Click;

          //}

      //}

  //}

  //[설정 컨트롤 생성]
  //{
      //[200904.19.일][추가!!!]{---------------------
      //설정용 대화상자의 각각의 설정 내용을 만든다.
      //}--------------------------------------------

      //[배경색 설정]{-----------------------------------------------------------------------------
      //바탕색을 설정한다.
      BMP_Get_Bright_Color(_ide_option->color_0, Ide_Bright_IdeOptionDialogPartBack, &_colorBack);
      //}------------------------------------------------------------------------------------------

      //[바탕]
      //{
          base_Label          = new Tgui_Label_Form(this);
          base_Label->Parent  = this;
          base_Label->Visible = true;

          base_Label->_Width(this->Width - 8);
          base_Label->_Height(this->Height - 26);
          base_Label->_Top(22);
          base_Label->_Left(4);
          base_Label->_Caption("");
          //base_Label->_BackColor(clRed);

      //}

      //[수직 줄이동자]
      //{
          //전체 설정을 수직으로 줄이동할 [수직 줄이동자] 를 배치한다.

          scroll_V          = new Tgui_scroll_v_Form(this);
          scroll_V->Parent  = base_Label;
          scroll_V->Visible = true;

          scroll_V->_Left(base_Label->Width - 13 - 2);
          scroll_V->_Top(2);
          scroll_V->_Height(base_Label->Height - 4);

          scroll_V->_Min(0);
          scroll_V->_Max(base_Label->Height);
          scroll_V->_DesignSize(100);
          scroll_V->_Position(0);

          //[EVENT 함수]
          //{
              scroll_V->_EVENT_Scroll = _EVENT_Scroll_V;

          //}

      //}

      //[전체 색 설정]
      //{
          //[바탕]
          //{
              ideColor_Label          = new Tgui_Label_Form(this);
              ideColor_Label->Parent  = base_Label;
              ideColor_Label->Visible = true;

              ideColor_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              ideColor_Label->_Height(43);
              ideColor_Label->_Left(2);
              ideColor_Label->_Top(2);
              ideColor_Label->_Border(true);
              ideColor_Label->_FontXY(2,2);
              ideColor_Label->_FontColor(IDE_COLOR_1);
              ideColor_Label->_Caption("[전체색 설정]");
              ideColor_Label->_BackColor(_colorBack);

          //}

          //[색표시]
          //{
              ideColorView_Label          = new Tgui_Label_Form(this);
              ideColorView_Label->Parent  = ideColor_Label;
              ideColorView_Label->Visible = true;

              ideColorView_Label->_Left(3);
              ideColorView_Label->_Top(20);
              ideColorView_Label->_Width(100);
              ideColorView_Label->_Height(20);
              ideColorView_Label->_Border(true);
              ideColorView_Label->_BorderColor(IDE_COLOR_1);
              ideColorView_Label->_Caption("");
              ideColorView_Label->_BackColor(_ide_option->color_0);

          //}

          //[색 선택 버튼]
          //{
              ideColorSel_Btn          = new Tgui_button_Form(this);
              ideColorSel_Btn->Parent  = ideColor_Label;
              ideColorSel_Btn->Visible = true;

              ideColorSel_Btn->_Top(ideColorView_Label->Top);
              ideColorSel_Btn->_Left(ideColorView_Label->Left + ideColorView_Label->Width + 4);
              ideColorSel_Btn->_Width(100);
              ideColorSel_Btn->_Height(ideColorView_Label->Height);
              ideColorSel_Btn->_FontColor(_ide_option->color_0);
              ideColorSel_Btn->_Caption("색 선택");

              ideColorSel_Btn->_EVENT_Click = _EVENT_Click_ideColorSel_Btn;

          //}

          //[색 적용 버튼]
          //{
              ideColorSet_Btn          = new Tgui_button_Form(this);
              ideColorSet_Btn->Parent  = ideColor_Label;
              ideColorSet_Btn->Visible = true;

              ideColorSet_Btn->_Top(ideColorView_Label->Top);
              ideColorSet_Btn->_Left(ideColorSel_Btn->Left + ideColorSel_Btn->Width + 4);
              ideColorSet_Btn->_Width(100);
              ideColorSet_Btn->_Height(ideColorView_Label->Height);
              ideColorSet_Btn->_FontColor(_ide_option->color_0);
              ideColorSet_Btn->_Caption("색 적용");

              ideColorSet_Btn->_EVENT_Click = _EVENT_Click_ideColorSet_Btn;

          //}

      //}

      //[통신포트 설정]
      //{
          //[바탕]
          //{
              comPort_Label          = new Tgui_Label_Form(this);
              comPort_Label->Parent  = base_Label;
              comPort_Label->Visible = true;

              comPort_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              comPort_Label->_Height(43);
              comPort_Label->_Left(2);
              comPort_Label->_Top(ideColor_Label->Top + ideColor_Label->Height + 2);
              comPort_Label->_Border(true);
              comPort_Label->_FontXY(2,2);
              comPort_Label->_FontColor(IDE_COLOR_1);
              comPort_Label->_Caption("[통신포트 설정]");
              comPort_Label->_BackColor(_colorBack);

          //}

          //[포트 선택 버튼]
          //{
              comPortSel_Btn          = new Tgui_button_Form(this);
              comPortSel_Btn->Parent  = comPort_Label;
              comPortSel_Btn->Visible = true;

              comPortSel_Btn->_Top(20);
              comPortSel_Btn->_Left(3);
              comPortSel_Btn->_Width(152);
              comPortSel_Btn->_Height(20);
              comPortSel_Btn->_FontColor(_ide_option->color_0);
              comPortSel_Btn->_Caption("포트번호(1)");

              comPortSel_Btn->_EVENT_Click = _EVENT_Click_comPortSel_Btn;

          //}

          //[포트 열기/닫기 버튼]
          //{
              comPortOpen_Btn          = new Tgui_button_Form(this);
              comPortOpen_Btn->Parent  = comPort_Label;
              comPortOpen_Btn->Visible = true;

              comPortOpen_Btn->_Top(comPortSel_Btn->Top );
              comPortOpen_Btn->_Left(comPortSel_Btn->Left + comPortSel_Btn->Width + 4);
              comPortOpen_Btn->_Width(152);
              comPortOpen_Btn->_Height(comPortSel_Btn->Height);
              comPortOpen_Btn->_FontColor(_ide_option->color_0);
              comPortOpen_Btn->_Caption("열기");

              comPortOpen_Btn->_EVENT_Click = _EVENT_Click_comPortOpen_Btn;

          //}

      //}

      //[구성요소 색 설정]
      //{
          //[바탕]
          //{
              itemColor_Label          = new Tgui_Label_Form(this);
              itemColor_Label->Parent  = base_Label;
              itemColor_Label->Visible = true;

              itemColor_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              itemColor_Label->_Height(91);
              itemColor_Label->_Left(2);
              itemColor_Label->_Top(comPort_Label->Top + comPort_Label->Height + 2);
              itemColor_Label->_Border(true);
              itemColor_Label->_FontXY(2,2);
              itemColor_Label->_FontColor(IDE_COLOR_1);
              itemColor_Label->_Caption("[구성요소 색 설정]");
              itemColor_Label->_BackColor(_colorBack);

          //}

          //[정지점]
          //{
              itemBreakPoint_bmpbtn          = new Tgui_bmpbutton_Form(this);
              itemBreakPoint_bmpbtn->Parent  = itemColor_Label;
              itemBreakPoint_bmpbtn->Visible = true;

              bmp_path = ExtractFilePath(Application->ExeName) + "sysbmp\\8_8\\breakpoint.bmp";

              itemBreakPoint_bmpbtn->_Top(20);
              itemBreakPoint_bmpbtn->_Left(3);
              itemBreakPoint_bmpbtn->_Width(100);
              itemBreakPoint_bmpbtn->_Height(20);
              itemBreakPoint_bmpbtn->_Border(true);
              itemBreakPoint_bmpbtn->_Bitmap(bmp_path);
              itemBreakPoint_bmpbtn->_Image_X(46);
              itemBreakPoint_bmpbtn->_Image_Y(6);
              itemBreakPoint_bmpbtn->_Image_Width(8);
              itemBreakPoint_bmpbtn->_Image_Height(8);
              itemBreakPoint_bmpbtn->_ColorFront(_ide_option->color_breakpoint);

              itemBreakPoint_bmpbtn->_EVENT_Click = _EVENT_Click_itemBreakPoint_bmpbtn;

          //}

          //[검증 지정 화살표]
          //{
              itemArrow_bmpbtn          = new Tgui_bmpbutton_Form(this);
              itemArrow_bmpbtn->Parent  = itemColor_Label;
              itemArrow_bmpbtn->Visible = true;

              bmp_path = ExtractFilePath(Application->ExeName) + "sysbmp\\12_12\\run_arrow.bmp";

              itemArrow_bmpbtn->_Top(20);
              itemArrow_bmpbtn->_Left(itemBreakPoint_bmpbtn->Left + itemBreakPoint_bmpbtn->Width + 4);
              itemArrow_bmpbtn->_Width(100);
              itemArrow_bmpbtn->_Height(20);
              itemArrow_bmpbtn->_Border(true);
              itemArrow_bmpbtn->_Bitmap(bmp_path);
              itemArrow_bmpbtn->_Image_X(44);
              itemArrow_bmpbtn->_Image_Y(4);
              itemArrow_bmpbtn->_Image_Width(12);
              itemArrow_bmpbtn->_Image_Height(12);
              itemArrow_bmpbtn->_ColorFront(_ide_option->color_run_arrow);

              itemArrow_bmpbtn->_EVENT_Click = _EVENT_Click_itemArrow_bmpbtn;

          //}

          //[검증 지정 상자]
          //{
              itemLineBox_bmpbtn          = new Tgui_bmpbutton_Form(this);
              itemLineBox_bmpbtn->Parent  = itemColor_Label;
              itemLineBox_bmpbtn->Visible = true;

              bmp_path = ExtractFilePath(Application->ExeName) + "sysbmp\\27_12\\linebox.bmp";

              itemLineBox_bmpbtn->_Top(20);
              itemLineBox_bmpbtn->_Left(itemArrow_bmpbtn->Left + itemArrow_bmpbtn->Width + 4);
              itemLineBox_bmpbtn->_Width(100);
              itemLineBox_bmpbtn->_Height(20);
              itemLineBox_bmpbtn->_Border(true);
              itemLineBox_bmpbtn->_Bitmap(bmp_path);
              itemLineBox_bmpbtn->_Image_X(36);
              itemLineBox_bmpbtn->_Image_Y(4);
              itemLineBox_bmpbtn->_Image_Width(27);
              itemLineBox_bmpbtn->_Image_Height(12);
              itemLineBox_bmpbtn->_ColorFront(_ide_option->color_linebox);

              itemLineBox_bmpbtn->_EVENT_Click = _EVENT_Click_itemLineBox_bmpbtn;

          //}

          //[예약어 버튼]
          //{
              syntaxColorKeyword_Btn          = new Tgui_button_Form(this);
              syntaxColorKeyword_Btn->Parent  = itemColor_Label;
              syntaxColorKeyword_Btn->Visible = true;

              syntaxColorKeyword_Btn->_Top(20 + 20 + 4);
              syntaxColorKeyword_Btn->_Left(3);
              syntaxColorKeyword_Btn->_Width(100);
              syntaxColorKeyword_Btn->_Height(20);
              syntaxColorKeyword_Btn->_FontColor(_ide_option->color_Keyword);
              syntaxColorKeyword_Btn->_Caption("예약어");

              syntaxColorKeyword_Btn->_EVENT_Click = _EVENT_Click_syntaxColorKeyword_Btn;

          //}

          //[주석문 버튼]
          //{
              syntaxColorComment_Btn          = new Tgui_button_Form(this);
              syntaxColorComment_Btn->Parent  = itemColor_Label;
              syntaxColorComment_Btn->Visible = true;

              syntaxColorComment_Btn->_Top(20 + 20 + 4);
              syntaxColorComment_Btn->_Left(syntaxColorKeyword_Btn->Left + syntaxColorKeyword_Btn->Width + 4);
              syntaxColorComment_Btn->_Width(100);
              syntaxColorComment_Btn->_Height(20);
              syntaxColorComment_Btn->_FontColor(_ide_option->color_Comment);
              syntaxColorComment_Btn->_Caption("주석문");

              syntaxColorComment_Btn->_EVENT_Click = _EVENT_Click_syntaxColorComment_Btn;

          //}

          //[16진수 버튼]
          //{
              syntaxColor16_Btn          = new Tgui_button_Form(this);
              syntaxColor16_Btn->Parent  = itemColor_Label;
              syntaxColor16_Btn->Visible = true;

              syntaxColor16_Btn->_Top(20 + 20 + 4);
              syntaxColor16_Btn->_Left(syntaxColorComment_Btn->Left + syntaxColorComment_Btn->Width + 4);
              syntaxColor16_Btn->_Width(100);
              syntaxColor16_Btn->_Height(20);
              syntaxColor16_Btn->_FontColor(_ide_option->color_HexWord);
              syntaxColor16_Btn->_Caption("16진수");

              syntaxColor16_Btn->_EVENT_Click = _EVENT_Click_syntaxColor16_Btn;

          //}

          //[2진수 버튼]
          //{
              syntaxColor2_Btn          = new Tgui_button_Form(this);
              syntaxColor2_Btn->Parent  = itemColor_Label;
              syntaxColor2_Btn->Visible = true;

              syntaxColor2_Btn->_Top(syntaxColorKeyword_Btn->Top + syntaxColorKeyword_Btn->Height + 4);
              syntaxColor2_Btn->_Left(3);
              syntaxColor2_Btn->_Width(100);
              syntaxColor2_Btn->_Height(20);
              syntaxColor2_Btn->_FontColor(_ide_option->color_BinWord);
              syntaxColor2_Btn->_Caption("2진수");

              syntaxColor2_Btn->_EVENT_Click = _EVENT_Click_syntaxColor2_Btn;

          //}

          //[문자상수 버튼]
          //{
              syntaxColorChar_Btn          = new Tgui_button_Form(this);
              syntaxColorChar_Btn->Parent  = itemColor_Label;
              syntaxColorChar_Btn->Visible = true;

              syntaxColorChar_Btn->_Top(syntaxColor2_Btn->Top);
              syntaxColorChar_Btn->_Left(syntaxColor2_Btn->Left + syntaxColor2_Btn->Width + 4);
              syntaxColorChar_Btn->_Width(100);
              syntaxColorChar_Btn->_Height(20);
              syntaxColorChar_Btn->_FontColor(_ide_option->color_Char);
              syntaxColorChar_Btn->_Caption("문자상수");

              syntaxColorChar_Btn->_EVENT_Click = _EVENT_Click_syntaxColorChar_Btn;

          //}

          //[문자열 버튼]
          //{
              syntaxColorString_Btn          = new Tgui_button_Form(this);
              syntaxColorString_Btn->Parent  = itemColor_Label;
              syntaxColorString_Btn->Visible = true;

              syntaxColorString_Btn->_Top(syntaxColor2_Btn->Top);
              syntaxColorString_Btn->_Left(syntaxColorChar_Btn->Left + syntaxColorChar_Btn->Width + 4);
              syntaxColorString_Btn->_Width(100);
              syntaxColorString_Btn->_Height(20);
              syntaxColorString_Btn->_FontColor(_ide_option->color_String);
              syntaxColorString_Btn->_Caption("문자열");

              syntaxColorString_Btn->_EVENT_Click = _EVENT_Click_syntaxColorString_Btn;

          //}

      //}

      //[배경그림 설정]
      //{
          //[바탕]
          //{
              backPhoto_Label          = new Tgui_Label_Form(this);
              backPhoto_Label->Parent  = base_Label;
              backPhoto_Label->Visible = true;

              backPhoto_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              backPhoto_Label->_Height(43);
              backPhoto_Label->_Left(2);
              backPhoto_Label->_Top(itemColor_Label->Top + itemColor_Label->Height + 2);
              backPhoto_Label->_Border(true);
              backPhoto_Label->_FontXY(2,2);
              backPhoto_Label->_FontColor(IDE_COLOR_1);
              backPhoto_Label->_Caption("[배경그림 설정]");
              backPhoto_Label->_BackColor(_colorBack);



          //}

          //[그림 선택 버튼]
          //{
              backPhoto_Btn          = new Tgui_button_Form(this);
              backPhoto_Btn->Parent  = backPhoto_Label;
              backPhoto_Btn->Visible = true;

              backPhoto_Btn->_Top(20);
              backPhoto_Btn->_Left(3);
              backPhoto_Btn->_Width(backPhoto_Label->Width - 6);
              backPhoto_Btn->_Height(20);
              backPhoto_Btn->_FontColor(_ide_option->color_0);
              backPhoto_Btn->_Caption("JPG 그림 선택/반영");

              backPhoto_Btn->_EVENT_Click = _EVENT_Click_backPhoto_Btn;

          //}

      //}

      //[바탕 밝기 설정]
      //{
          //[바탕]
          //{
              backBright_Label          = new Tgui_Label_Form(this);
              backBright_Label->Parent  = base_Label;
              backBright_Label->Visible = true;

              backBright_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              backBright_Label->_Height(43);
              backBright_Label->_Left(2);
              backBright_Label->_Top(backPhoto_Label->Top + backPhoto_Label->Height + 2);
              backBright_Label->_Border(true);
              backBright_Label->_FontXY(2,2);
              backBright_Label->_FontColor(IDE_COLOR_1);
              backBright_Label->_Caption("[바탕 밝기 설정]");
              backBright_Label->_BackColor(_colorBack);

          //}

          //[편집기 밝기 설정]
          //{
              editBright_Btn          = new Tgui_button_Form(this);
              editBright_Btn->Parent  = backBright_Label;
              editBright_Btn->Visible = true;

              editBright_Btn->_Top(20);
              editBright_Btn->_Left(3);
              editBright_Btn->_Width(100);
              editBright_Btn->_Height(20);
              editBright_Btn->_FontColor(_ide_option->color_0);
              editBright_Btn->_Caption("편집기(200)");

              editBright_Btn->_EVENT_Click = _EVENT_Click_editBright_Btn;

          //}

          //[정보창 밝기 설정]
          //{
              treeBright_Btn          = new Tgui_button_Form(this);
              treeBright_Btn->Parent  = backBright_Label;
              treeBright_Btn->Visible = true;

              treeBright_Btn->_Top(editBright_Btn->Top);
              treeBright_Btn->_Left(editBright_Btn->Left + editBright_Btn->Width + 4);
              treeBright_Btn->_Width(100);
              treeBright_Btn->_Height(20);
              treeBright_Btn->_FontColor(_ide_option->color_0);
              treeBright_Btn->_Caption("정보창(225)");

              treeBright_Btn->_EVENT_Click = _EVENT_Click_treeBright_Btn;

          //}

          //[알림창 밝기 설정]
          //{
              msgBright_Btn          = new Tgui_button_Form(this);
              msgBright_Btn->Parent  = backBright_Label;
              msgBright_Btn->Visible = true;

              msgBright_Btn->_Top(treeBright_Btn->Top);
              msgBright_Btn->_Left(treeBright_Btn->Left + treeBright_Btn->Width + 4);
              msgBright_Btn->_Width(100);
              msgBright_Btn->_Height(20);
              msgBright_Btn->_FontColor(_ide_option->color_0);
              msgBright_Btn->_Caption("알림창(225)");

              msgBright_Btn->_EVENT_Click = _EVENT_Click_msgBright_Btn;

          //}

      //}

      //[투명도 설정]
      //{
          //[바탕]
          //{
              alphaBlend_Label          = new Tgui_Label_Form(this);
              alphaBlend_Label->Parent  = base_Label;
              alphaBlend_Label->Visible = true;

              alphaBlend_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              alphaBlend_Label->_Height(58);
              alphaBlend_Label->_Left(2);
              alphaBlend_Label->_Top(backBright_Label->Top + backBright_Label->Height + 2);
              alphaBlend_Label->_Border(true);
              alphaBlend_Label->_FontXY(2,2);
              alphaBlend_Label->_FontColor(IDE_COLOR_1);
              alphaBlend_Label->_Caption("[투명도 설정]");
              alphaBlend_Label->_BackColor(_colorBack);

          //}

          //[사용 유/무]
          //{
              alphaBlend_CheckBtn          = new Tgui_check_button_Form(this);
              alphaBlend_CheckBtn->Parent  = alphaBlend_Label;
              alphaBlend_CheckBtn->Visible = true;

              alphaBlend_CheckBtn->_Left(3);
              alphaBlend_CheckBtn->_Top(20);

              alphaBlend_CheckBtn->_EVENT_Click = _EVENT_Click_alphaBlend_CheckBtn;

          //}

          //[문자열]
          //{
              alphaBlendText_Label          = new Tgui_Label_Form(this);
              alphaBlendText_Label->Parent  = alphaBlend_Label;
              alphaBlendText_Label->Visible = true;

              alphaBlendText_Label->_Width(alphaBlend_Label->Width - scroll_V->Width - 6 - alphaBlend_CheckBtn->Width - 4);
              alphaBlendText_Label->_Left(alphaBlend_CheckBtn->Left + alphaBlend_CheckBtn->Width + 4);
              alphaBlendText_Label->_Top(alphaBlend_CheckBtn->Top - 2);
              alphaBlendText_Label->_FontColor(_ide_option->color_0);
              alphaBlendText_Label->_Caption("개발환경 투명기능 사용(느려질수 있음).");
              alphaBlendText_Label->_BackColor(_colorBack);

          //}

          //[투명도 설정 버튼]
          //{
              alphaBlend_Btn          = new Tgui_button_Form(this);
              alphaBlend_Btn->Parent  = alphaBlend_Label;
              alphaBlend_Btn->Visible = true;

              alphaBlend_Btn->_Top(alphaBlend_CheckBtn->Top + alphaBlend_CheckBtn->Height + 4);
              alphaBlend_Btn->_Left(3);
              alphaBlend_Btn->_Width(alphaBlend_Label->Width - 6);
              alphaBlend_Btn->_Height(20);
              alphaBlend_Btn->_FontColor(_ide_option->color_0);
              alphaBlend_Btn->_Caption("투명도(215)");

              alphaBlend_Btn->_EVENT_Click = _EVENT_Click_alphaBlend_Btn;

          //}

      //}

      //[풍선 도움말]
      //{
          //[바탕]
          //{
              balloonHelp_Label          = new Tgui_Label_Form(this);
              balloonHelp_Label->Parent  = base_Label;
              balloonHelp_Label->Visible = true;

              balloonHelp_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              balloonHelp_Label->_Height(52);
              balloonHelp_Label->_Left(2);
              balloonHelp_Label->_Top(alphaBlend_Label->Top + alphaBlend_Label->Height + 2);
              balloonHelp_Label->_Border(true);
              balloonHelp_Label->_FontXY(2,2);
              balloonHelp_Label->_FontColor(IDE_COLOR_1);
              balloonHelp_Label->_Caption("[풍선 도움말 설정]");
              balloonHelp_Label->_BackColor(_colorBack);

          //}

          //[사용 유/무]
          //{
              balloonHelpUse_CheckBtn          = new Tgui_check_button_Form(this);
              balloonHelpUse_CheckBtn->Parent  = balloonHelp_Label;
              balloonHelpUse_CheckBtn->Visible = true;

              balloonHelpUse_CheckBtn->_Left(3);
              balloonHelpUse_CheckBtn->_Top(20);

              balloonHelpUse_CheckBtn->_EVENT_Click = _EVENT_Click_balloonHelpUse_CheckBtn;

          //}

          //[문자열]
          //{
              balloonHelpUse_Label          = new Tgui_Label_Form(this);
              balloonHelpUse_Label->Parent  = balloonHelp_Label;
              balloonHelpUse_Label->Visible = true;

              balloonHelpUse_Label->_Width(balloonHelp_Label->Width - scroll_V->Width - 6 - balloonHelpUse_CheckBtn->Width - 4);
              balloonHelpUse_Label->_Left(balloonHelpUse_CheckBtn->Left + balloonHelpUse_CheckBtn->Width + 4);
              balloonHelpUse_Label->_Top(balloonHelpUse_CheckBtn->Top - 2);
              balloonHelpUse_Label->_FontColor(_ide_option->color_0);
              balloonHelpUse_Label->_Caption("풍선 도움말 사용.");
              balloonHelpUse_Label->_BackColor(_colorBack);

          //}

          //[문서수정알림사용]
          //{
              //[2018.05.09.수][추가!!!]{----------------------------------------------------------
              //[편집기] 문서 수정 알림 [풍선도움말] 사용 [유/무] 설정.
              //<editor_top_Form> 의 "::: 수정됐으나 아직 저장하지 않은 문서 :::" 알림 사용 유/무.
              //}----------------------------------------------------------------------------------
              
              //[사용 유/무]
              //{
                  balloonChangeNotSaveUse_CheckBtn          = new Tgui_check_button_Form(this);
                  balloonChangeNotSaveUse_CheckBtn->Parent  = balloonHelp_Label;
                  balloonChangeNotSaveUse_CheckBtn->Visible = true;

                  balloonChangeNotSaveUse_CheckBtn->_Left(balloonHelp_Label->Width/2);
                  balloonChangeNotSaveUse_CheckBtn->_Top(20);

                  balloonChangeNotSaveUse_CheckBtn->_EVENT_Click = _EVENT_Click_balloonChangeNotSaveUse_CheckBtn;

              //}

              //[문자열]
              //{
                  balloonChangeNotSaveUse_Label          = new Tgui_Label_Form(this);
                  balloonChangeNotSaveUse_Label->Parent  = balloonHelp_Label;
                  balloonChangeNotSaveUse_Label->Visible = true;

                  balloonChangeNotSaveUse_Label->_Width(balloonHelp_Label->Width/2 - scroll_V->Width - 12);
                  balloonChangeNotSaveUse_Label->_Left(balloonChangeNotSaveUse_CheckBtn->Left + balloonChangeNotSaveUse_CheckBtn->Width + 4);
                  balloonChangeNotSaveUse_Label->_Top(balloonChangeNotSaveUse_CheckBtn->Top - 2);
                  balloonChangeNotSaveUse_Label->_FontColor(_ide_option->color_0);
                  balloonChangeNotSaveUse_Label->_Caption("문서 수정 알림 사용.");
                  balloonChangeNotSaveUse_Label->_BackColor(_colorBack);

              //}

          //}

          //[투명 사용 유/무]
          //{
              balloonHelpAlpha_CheckBtn          = new Tgui_check_button_Form(this);
              balloonHelpAlpha_CheckBtn->Parent  = balloonHelp_Label;
              balloonHelpAlpha_CheckBtn->Visible = true;

              balloonHelpAlpha_CheckBtn->_Left(3);
              balloonHelpAlpha_CheckBtn->_Top(balloonHelpUse_CheckBtn->Top + balloonHelpUse_CheckBtn->Height + 4);

              balloonHelpAlpha_CheckBtn->_EVENT_Click = _EVENT_Click_balloonHelpAlpha_CheckBtn;

          //}

          //[투명 기능 설명 문자열]
          //{
              balloonHelpAlpha_Label          = new Tgui_Label_Form(this);
              balloonHelpAlpha_Label->Parent  = balloonHelp_Label;
              balloonHelpAlpha_Label->Visible = true;

              balloonHelpAlpha_Label->_Width(balloonHelp_Label->Width - scroll_V->Width - 6 - balloonHelpAlpha_CheckBtn->Width - 4);
              balloonHelpAlpha_Label->_Left(balloonHelpAlpha_CheckBtn->Left + balloonHelpAlpha_CheckBtn->Width + 4);
              balloonHelpAlpha_Label->_Top(balloonHelpAlpha_CheckBtn->Top - 2);
              balloonHelpAlpha_Label->_FontColor(_ide_option->color_0);
              balloonHelpAlpha_Label->_Caption("투명기능 사용(느려질수 있음).");
              balloonHelpAlpha_Label->_BackColor(_colorBack);

          //}

      //}

      //[전광판 설정]
      //{
          //[2018.02.17.토][추가!!!]

          //[바탕]
          //{
              dotMatrix_Label          = new Tgui_Label_Form(this);
              dotMatrix_Label->Parent  = base_Label;
              dotMatrix_Label->Visible = true;

              dotMatrix_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              dotMatrix_Label->_Height(58);
              dotMatrix_Label->_Left(2);
              dotMatrix_Label->_Top(balloonHelp_Label->Top + balloonHelp_Label->Height + 2);
              dotMatrix_Label->_Border(true);
              dotMatrix_Label->_FontXY(2,2);
              dotMatrix_Label->_FontColor(IDE_COLOR_1);
              dotMatrix_Label->_Caption("[전광판 설정]");
              dotMatrix_Label->_BackColor(_colorBack);

          //}

          //[사용 유/무]
          //{
              dotMatrixUse_CheckBtn          = new Tgui_check_button_Form(this);
              dotMatrixUse_CheckBtn->Parent  = dotMatrix_Label;
              dotMatrixUse_CheckBtn->Visible = true;

              dotMatrixUse_CheckBtn->_Left(3);
              dotMatrixUse_CheckBtn->_Top(20);

              dotMatrixUse_CheckBtn->_EVENT_Click = _EVENT_Click_dotMatrixUse_CheckBtn;

          //}

          //[문자열]
          //{
              dotMatrixUse_Label          = new Tgui_Label_Form(this);
              dotMatrixUse_Label->Parent  = dotMatrix_Label;
              dotMatrixUse_Label->Visible = true;

              //문자열 출력범위에 따른 정확한 폭 얻기.
              FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, "사용", &w, &h);
              dotMatrixUse_Label->_Width(w + 2);

              dotMatrixUse_Label->_Left(dotMatrixUse_CheckBtn->Left + dotMatrixUse_CheckBtn->Width + 2);
              dotMatrixUse_Label->_Top(dotMatrixUse_CheckBtn->Top - 2);
              dotMatrixUse_Label->_FontColor(_ide_option->color_0);
              dotMatrixUse_Label->_Caption("사용");
              dotMatrixUse_Label->_BackColor(_colorBack);

          //}

          //[회전 유/무]
          //{
              dotMatrixRotate_CheckBtn          = new Tgui_check_button_Form(this);
              dotMatrixRotate_CheckBtn->Parent  = dotMatrix_Label;
              dotMatrixRotate_CheckBtn->Visible = true;

              dotMatrixRotate_CheckBtn->_Left(dotMatrix_Label->Width/2);
              dotMatrixRotate_CheckBtn->_Top(20);

              dotMatrixRotate_CheckBtn->_EVENT_Click = _EVENT_Click_dotMatrixRotate_CheckBtn;

          //}

          //[문자열]
          //{
              dotMatrixRotate_Label          = new Tgui_Label_Form(this);
              dotMatrixRotate_Label->Parent  = dotMatrix_Label;
              dotMatrixRotate_Label->Visible = true;

              //문자열 출력범위에 따른 정확한 폭 얻기.
              FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, "회전", &w, &h);
              dotMatrixRotate_Label->_Width(w + 2);

              dotMatrixRotate_Label->_Left(dotMatrixRotate_CheckBtn->Left + dotMatrixRotate_CheckBtn->Width + 2);
              dotMatrixRotate_Label->_Top(dotMatrixRotate_CheckBtn->Top - 2);
              dotMatrixRotate_Label->_FontColor(_ide_option->color_0);
              dotMatrixRotate_Label->_Caption("회전");
              dotMatrixRotate_Label->_BackColor(_colorBack);

          //}

          //[문자열 설정 버튼]
          //{
              dotMatrixStr_Btn          = new Tgui_button_Form(this);
              dotMatrixStr_Btn->Parent  = dotMatrix_Label;
              dotMatrixStr_Btn->Visible = true;

              dotMatrixStr_Btn->_Top(dotMatrixUse_CheckBtn->Top + dotMatrixUse_CheckBtn->Height + 4);
              dotMatrixStr_Btn->_Left(3);
              dotMatrixStr_Btn->_Width(dotMatrix_Label->Width/2 - 6);
              dotMatrixStr_Btn->_Height(20);
              dotMatrixStr_Btn->_FontColor(_ide_option->color_0);
              dotMatrixStr_Btn->_Caption("전광판 문자열");

              dotMatrixStr_Btn->_EVENT_Click = _EVENT_Click_dotMatrixStr_Btn;

          //}

          //[문자열 회전 시간 간격 설정 버튼]
          //{
              //[2018.02.19.월][추가!!!]
              dotMatrixRotateTime_Btn          = new Tgui_button_Form(this);
              dotMatrixRotateTime_Btn->Parent  = dotMatrix_Label;
              dotMatrixRotateTime_Btn->Visible = true;

              dotMatrixRotateTime_Btn->_Top(dotMatrixUse_CheckBtn->Top + dotMatrixUse_CheckBtn->Height + 4);
              dotMatrixRotateTime_Btn->_Left(dotMatrix_Label->Width/2);
              dotMatrixRotateTime_Btn->_Width(dotMatrix_Label->Width/2 - 3);
              dotMatrixRotateTime_Btn->_Height(20);
              dotMatrixRotateTime_Btn->_FontColor(_ide_option->color_0);
              //기본값이 100 이므로 이에 맞게 문자열 생성.
              //실제는 <IDE_OptionFile_Open()> 함수에서 자동 설정되고 대화상자가 열릴때 자동 반영된다.
              dotMatrixRotateTime_Btn->_Caption("회전속도(0100)");

              dotMatrixRotateTime_Btn->_EVENT_Click = _EVENT_Click_dotMatrixRotateTime_Btn;

          //}

      //}

      //[자동 저장 설정]
      //{
          //[2018.05.05.토][추가!!!]

          //[바탕]
          //{
              autoSave_Label          = new Tgui_Label_Form(this);
              autoSave_Label->Parent  = base_Label;
              autoSave_Label->Visible = true;

              autoSave_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              autoSave_Label->_Height(43);
              autoSave_Label->_Left(2);
              autoSave_Label->_Top(dotMatrix_Label->Top + dotMatrix_Label->Height + 2);
              autoSave_Label->_Border(true);
              autoSave_Label->_FontXY(2,2);
              autoSave_Label->_FontColor(IDE_COLOR_1);
              autoSave_Label->_Caption("[자동 저장 설정]");
              autoSave_Label->_BackColor(_colorBack);

          //}

          //[사용 유/무]
          //{
              autoSaveUse_CheckBtn          = new Tgui_check_button_Form(this);
              autoSaveUse_CheckBtn->Parent  = autoSave_Label;
              autoSaveUse_CheckBtn->Visible = true;

              autoSaveUse_CheckBtn->_Left(3);
              autoSaveUse_CheckBtn->_Top(24);

              autoSaveUse_CheckBtn->_EVENT_Click = _EVENT_Click_autoSaveUse_CheckBtn;

          //}

          //[문자열]
          //{
              autoSaveUse_Label          = new Tgui_Label_Form(this);
              autoSaveUse_Label->Parent  = autoSave_Label;
              autoSaveUse_Label->Visible = true;

              //문자열 출력범위에 따른 정확한 폭 얻기.
              FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, "사용", &w, &h);
              autoSaveUse_Label->_Width(w + 2);

              autoSaveUse_Label->_Left(autoSaveUse_CheckBtn->Left + autoSaveUse_CheckBtn->Width + 2);
              autoSaveUse_Label->_Top(autoSaveUse_CheckBtn->Top - 2);
              autoSaveUse_Label->_FontColor(_ide_option->color_0);
              autoSaveUse_Label->_Caption("사용");
              autoSaveUse_Label->_BackColor(_colorBack);

          //}

          //[자동 저장 주기 설정 버튼]
          //{
              autoSavePeriod_Btn          = new Tgui_button_Form(this);
              autoSavePeriod_Btn->Parent  = autoSave_Label;
              autoSavePeriod_Btn->Visible = true;

              autoSavePeriod_Btn->_Top(20);
              autoSavePeriod_Btn->_Left(autoSaveUse_Label->Left + autoSaveUse_Label->Width + 4);
              autoSavePeriod_Btn->_Width(autoSave_Label->Width - autoSavePeriod_Btn->Left - 3);
              autoSavePeriod_Btn->_Height(20);
              autoSavePeriod_Btn->_FontColor(_ide_option->color_0);
              //기본값이 2 이므로 이에 맞게 문자열 생성.
              //실제는 <IDE_OptionFile_Open()> 함수에서 자동 설정되고 대화상자가 열릴때 자동 반영된다.
              autoSavePeriod_Btn->_Caption("주기(02)");

              autoSavePeriod_Btn->_EVENT_Click = _EVENT_Click_autoSavePeriod_Btn;

          //}

      //}

      //[wine 구동 설정]
      //{
          //[바탕]
          //{
              wine_Label          = new Tgui_Label_Form(this);
              wine_Label->Parent  = base_Label;
              wine_Label->Visible = true;

              wine_Label->_Width(base_Label->Width - scroll_V->Width - 6);
              wine_Label->_Height(37);
              wine_Label->_Left(2);
              wine_Label->_Top(autoSave_Label->Top + autoSave_Label->Height + 2);
              wine_Label->_Border(true);
              wine_Label->_FontXY(2,2);
              wine_Label->_FontColor(IDE_COLOR_1);
              wine_Label->_Caption("[wine 구동 설정]");
              wine_Label->_BackColor(_colorBack);

          //}

          //[사용 유/무]
          //{
              wineUse_CheckBtn          = new Tgui_check_button_Form(this);
              wineUse_CheckBtn->Parent  = wine_Label;
              wineUse_CheckBtn->Visible = true;

              wineUse_CheckBtn->_Left(3);
              wineUse_CheckBtn->_Top(20);

              wineUse_CheckBtn->_EVENT_Click = _EVENT_Click_wineUse_CheckBtn;

          //}

          //[문자열]
          //{
              wineUse_Label          = new Tgui_Label_Form(this);
              wineUse_Label->Parent  = wine_Label;
              wineUse_Label->Visible = true;

              //문자열 출력범위에 따른 정확한 폭 얻기.
              FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, "FreeBSD/Linux 에서 wine 으로 구동.", &w, &h);
              wineUse_Label->_Width(w + 2);

              wineUse_Label->_Left(wineUse_CheckBtn->Left + wineUse_CheckBtn->Width + 2);
              wineUse_Label->_Top(wineUse_CheckBtn->Top - 2);
              wineUse_Label->_FontColor(_ide_option->color_0);
              wineUse_Label->_Caption("FreeBSD/Linux 에서 wine 으로 구동.");
              wineUse_Label->_BackColor(_colorBack);

          //}

      //}

      //[수직 줄이동자 범위 설정]
      //{
          scroll_V->_Min(0);
          //[2018.02.17.토][수정!!!]{----------------------------------------------------
          scroll_V->_Max(wine_Label->Top + wine_Label->Height - base_Label->Height + 2);
          //}----------------------------------------------------------------------------
          scroll_V->_DesignSize(scroll_V->_max / 2);
          scroll_V->_Position(0);

      //}

  //}

  //[그리기]
  //{
      _Shape();

  //}

  //[폼 위치 조정]
  //{
      //폼이 항상 화면의 중앙에 나오도록 위치를 조정한다.
      this->Left = Screen->Width/2  - this->Width/2;
      this->Top  = Screen->Height/2 - this->Height/2;

  //}

  return;

}

__fastcall ToptionIde_DialogBox_Form::~ToptionIde_DialogBox_Form(void)
{
  //[2012.04.29.일][수정!!!]{---------------
  //안전을 위하여 선언된 역순으로 삭제한다.
  //
  //[2018.02.17.토][추가!!!]----------------
  //[2018.05.05.토][추가!!!]----------------
  //}---------------------------------------

  //[2018.02.17.토][추가!!!]{--------------------------------------------------------
  if(wineUse_Label != NULL) { delete wineUse_Label; wineUse_Label = NULL; }
  if(wineUse_CheckBtn != NULL) { delete wineUse_CheckBtn; wineUse_CheckBtn = NULL; }
  if(wine_Label != NULL) { delete wine_Label; wine_Label = NULL; }
  //}--------------------------------------------------------------------------------

  //[2018.05.05.토][추가!!!]{--------------------------------------------------------------------
  if(autoSavePeriod_Btn != NULL)   { delete autoSavePeriod_Btn; autoSavePeriod_Btn = NULL; }
  if(autoSaveUse_Label != NULL)    { delete autoSaveUse_Label; autoSaveUse_Label = NULL; }
  if(autoSaveUse_CheckBtn != NULL) { delete autoSaveUse_CheckBtn; autoSaveUse_CheckBtn = NULL; }
  if(autoSave_Label != NULL)       { delete autoSave_Label; autoSave_Label = NULL; }
  //}--------------------------------------------------------------------------------------------

  //[2018.02.19.월][추가!!!]{-----------------------------------------------------------------------------
  if(dotMatrixRotateTime_Btn != NULL) { delete dotMatrixRotateTime_Btn; dotMatrixRotateTime_Btn = NULL; }
  //}-----------------------------------------------------------------------------------------------------

  if(dotMatrixStr_Btn != NULL) { delete dotMatrixStr_Btn; dotMatrixStr_Btn = NULL; }
  if(dotMatrixRotate_Label != NULL) { delete dotMatrixRotate_Label; dotMatrixRotate_Label = NULL; }
  if(dotMatrixRotate_CheckBtn != NULL) { delete dotMatrixRotate_CheckBtn; dotMatrixRotate_CheckBtn = NULL; }
  if(dotMatrixUse_Label != NULL) { delete dotMatrixUse_Label; dotMatrixUse_Label = NULL; }
  if(dotMatrixUse_CheckBtn != NULL) { delete dotMatrixUse_CheckBtn; dotMatrixUse_CheckBtn = NULL; }
  if(dotMatrix_Label != NULL) { delete dotMatrix_Label; dotMatrix_Label = NULL; }
  //}--------------------------------------------------------------------------------------------------------

  if(balloonHelpAlpha_Label != NULL) { delete balloonHelpAlpha_Label; balloonHelpAlpha_Label = NULL; }

  if(balloonHelpAlpha_CheckBtn != NULL) { delete balloonHelpAlpha_CheckBtn; balloonHelpAlpha_CheckBtn = NULL; }

  //[2018.05.09.수][추가!!!]{--------------------------------------------------------------------------------------------------------
  if(balloonChangeNotSaveUse_Label != NULL) { delete balloonChangeNotSaveUse_Label; balloonChangeNotSaveUse_Label = NULL; }
  if(balloonChangeNotSaveUse_CheckBtn != NULL) { delete balloonChangeNotSaveUse_CheckBtn; balloonChangeNotSaveUse_CheckBtn = NULL; }
  //}--------------------------------------------------------------------------------------------------------------------------------

  if(balloonHelpUse_Label != NULL) { delete balloonHelpUse_Label; balloonHelpUse_Label = NULL; }

  if(balloonHelpUse_CheckBtn != NULL) { delete balloonHelpUse_CheckBtn; balloonHelpUse_CheckBtn = NULL; }

  if(balloonHelp_Label != NULL) { delete balloonHelp_Label; balloonHelp_Label = NULL; }

  if(alphaBlend_Btn != NULL) { delete alphaBlend_Btn; alphaBlend_Btn = NULL; }

  if(alphaBlendText_Label != NULL) { delete alphaBlendText_Label; alphaBlendText_Label = NULL; }

  if(alphaBlend_CheckBtn != NULL) { delete alphaBlend_CheckBtn; alphaBlend_CheckBtn = NULL; }

  if(alphaBlend_Label != NULL) { delete alphaBlend_Label; alphaBlend_Label = NULL; }

  if(msgBright_Btn != NULL) { delete msgBright_Btn; msgBright_Btn = NULL; }

  if(treeBright_Btn != NULL) { delete treeBright_Btn; treeBright_Btn = NULL; }

  if(editBright_Btn != NULL) { delete editBright_Btn; editBright_Btn = NULL; }

  if(backBright_Label != NULL) { delete backBright_Label; backBright_Label = NULL; }

  if(backPhoto_Btn != NULL) { delete backPhoto_Btn; backPhoto_Btn = NULL; }

  if(backPhoto_Label != NULL) { delete backPhoto_Label; backPhoto_Label = NULL; }

  if(syntaxColorString_Btn != NULL) { delete syntaxColorString_Btn; syntaxColorString_Btn = NULL; }

  if(syntaxColorChar_Btn != NULL) { delete syntaxColorChar_Btn; syntaxColorChar_Btn = NULL; }

  if(syntaxColor2_Btn != NULL) { delete syntaxColor2_Btn; syntaxColor2_Btn = NULL; }

  if(syntaxColor16_Btn != NULL) { delete syntaxColor16_Btn; syntaxColor16_Btn = NULL; }

  if(syntaxColorComment_Btn != NULL) { delete syntaxColorComment_Btn; syntaxColorComment_Btn = NULL; }

  if(syntaxColorKeyword_Btn != NULL) { delete syntaxColorKeyword_Btn; syntaxColorKeyword_Btn = NULL; }

  if(itemLineBox_bmpbtn != NULL) { delete itemLineBox_bmpbtn; itemLineBox_bmpbtn = NULL; }

  if(itemArrow_bmpbtn != NULL) { delete itemArrow_bmpbtn; itemArrow_bmpbtn = NULL; }

  if(itemBreakPoint_bmpbtn != NULL) { delete itemBreakPoint_bmpbtn; itemBreakPoint_bmpbtn = NULL; }

  if(itemColor_Label != NULL) { delete itemColor_Label; itemColor_Label = NULL; }

  if(comPortOpen_Btn != NULL) { delete comPortOpen_Btn; comPortOpen_Btn = NULL; }

  if(comPortSel_Btn != NULL) { delete comPortSel_Btn; comPortSel_Btn = NULL; }

  if(comPort_Label != NULL) { delete comPort_Label; comPort_Label = NULL; }

  if(ideColorSet_Btn != NULL) { delete ideColorSet_Btn; ideColorSet_Btn = NULL; }

  if(ideColorSel_Btn != NULL) { delete ideColorSel_Btn; ideColorSel_Btn = NULL; }

  if(ideColorView_Label != NULL) { delete ideColorView_Label; ideColorView_Label = NULL; }

  if(ideColor_Label != NULL) { delete ideColor_Label; ideColor_Label = NULL; }

  if(scroll_V != NULL) { delete scroll_V; scroll_V = NULL; }

  if(base_Label != NULL) { delete base_Label; base_Label = NULL; }

  if(_close_bmpbtns != NULL) { delete _close_bmpbtns; _close_bmpbtns = NULL; }

  if(_bmp_ != NULL) { delete _bmp_; _bmp_ = NULL; }

}

//------------------------------------------------------------------------------

void __fastcall ToptionIde_DialogBox_Form::_FormCut(void)
{
  //[2006.11.07.화][생성!!!]{----------------------------------------------------
  //폼의 caption 의 모양을 보기 좋게 하기 위하여 caption 의 영역을 제외한 나머지
  //영역의 폼을 제거해 준다.(구멍을 뚫어준다.)
  //여러개의 [사각형] 모양으로 구멍을 뚫어준다.
  //}----------------------------------------------------------------------------

  //[VAR]
  //{
      HRGN    rgn_main,                              //대상 폼.
              rgn_cut_rect,                          //caption 오른쪽 영역 전부.
              rgn_cut_left_line, rgn_cut_left_dot,   //수평line, dot.
              rgn_cut_right_line, rgn_cut_right_dot; //수평line, dot.
  //}


  //[Form 초기화]
  //{
      //포인터 초기화.
      rgn_main = 0;

      //Form 의 영역 정보를 얻는다.
      GetWindowRgn(this->Handle, rgn_main);

      //일단 현재 Form 영역을 지운다.
      DeleteObject(rgn_main);
  //}

  //[영역 생성]
  //{
      //새로운 영역을 생성한다.
      rgn_main = CreateRectRgn(0, 0, this->Width, this->Height);

      //[구멍 뚫을 영역 지정]
      //{
          //caption 오른쪽 영역.
          rgn_cut_rect       = CreateRectRgn(_caption_width, 0, this->Width, 18);

          //좌측 라인.
          rgn_cut_left_line  = CreateRectRgn(0, 0, 2, 1);

          //좌측 점.
          rgn_cut_left_dot   = CreateRectRgn(0, 1, 1, 2);

          //우측 라인.
          rgn_cut_right_line = CreateRectRgn(_caption_width - 2, 0, _caption_width, 1);

          //우측 점.
          rgn_cut_right_dot  = CreateRectRgn(_caption_width - 1, 1, _caption_width, 2);

      //}

      CombineRgn(rgn_main, rgn_main, rgn_cut_rect, RGN_DIFF);
      CombineRgn(rgn_main, rgn_main, rgn_cut_left_line, RGN_DIFF);
      CombineRgn(rgn_main, rgn_main, rgn_cut_left_dot, RGN_DIFF);
      CombineRgn(rgn_main, rgn_main, rgn_cut_right_line, RGN_DIFF);
      CombineRgn(rgn_main, rgn_main, rgn_cut_right_dot, RGN_DIFF);

      SetWindowRgn(this->Handle, rgn_main, TRUE);
  //}

  //[구멍 뚫기]
  //{
      //--------------------------------
      //지정 영역에 구멍을 뚫는다.
      DeleteObject(rgn_cut_rect);
      DeleteObject(rgn_cut_left_line);
      DeleteObject(rgn_cut_left_dot);
      DeleteObject(rgn_cut_right_line);
      DeleteObject(rgn_cut_right_dot);
      //--------------------------------
  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_Border(void)
{
  //[설명!!!]{----------------------------------------------------------------
  //Form 전체의 테두리를 만든다.
  //두께는 4pixel, 동서남 3 면만 그리면 된다.
  //테두리는 직접 보이는 것이고 내용에 영향을 주지 않아야 하므로 직접 그린다.

  //[2007.03.18.일][수정!!!]
  //1 pixel 의 [통합개발환경] 전체 테두리를 마지막에 그려준다.
  //이는 윤곽을 더 뚜렷하게 하기 위한 것이다.
  //}-------------------------------------------------------------------------

  //[VAR]
  //{
      TRect            trect;
  //}

  //[테두리 만들기]
  //{
      //[좌측 테두리]{-------------------------------
      trect.Left   = 0;
      trect.Top    = 0;
      trect.Right  = d_border_width;
      trect.Bottom = _bmp_->Height;

      _bmp_->Canvas->Brush->Color = _ide_option->color_0;
      _bmp_->Canvas->FillRect(trect);
      //[우측 테두리]{-------------------------------
      trect.Left   = _bmp_->Width - d_border_width;
      trect.Top    = 0;
      trect.Right  = _bmp_->Width;
      trect.Bottom = _bmp_->Height;

      _bmp_->Canvas->Brush->Color = _ide_option->color_0;
      _bmp_->Canvas->FillRect(trect);
      //[아래 테두리]{-------------------------------
      trect.Left   = 0;
      trect.Top    = _bmp_->Height - d_border_width;
      trect.Right  = _bmp_->Width;
      trect.Bottom = _bmp_->Height;

      _bmp_->Canvas->Brush->Color = _ide_option->color_0;
      _bmp_->Canvas->FillRect(trect);
      //---------------------------------------------
  //}

  //[윤곽선 만들기]
  //{
      //[2007.03.18.일][추가!!!]
      if(d_OPTION_msgbox_outline)
      {
        //[왼쪽]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(0, 2);
        _bmp_->Canvas->LineTo(0, this->Height);

        //[오른쪽]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(this->Width - 1, 0);
        _bmp_->Canvas->LineTo(this->Width - 1, this->Height);

        //[아래쪽]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(0, this->Height - 1);
        _bmp_->Canvas->LineTo(this->Width - 1, this->Height - 1);

        //[제목줄 위쪽]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(2, 0);
        _bmp_->Canvas->LineTo(_caption_width-3, 0);

        //[오늘쪽 위쪽]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(_caption_width -1 , _caption_height - d_border_width);
        _bmp_->Canvas->LineTo(this->Width - 1, _caption_height - d_border_width);

        //[제목줄 오른쪽]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(_caption_width -1 , 2);
        _bmp_->Canvas->LineTo(_caption_width -1, _caption_height - d_border_width);

        //[제목줄 왼쪽위 모서리]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(2 , 0);
        _bmp_->Canvas->LineTo(0, 2);

        //[제목줄 오른쪽위 모서리]
        _bmp_->Canvas->Pen->Color = IDE_COLOR_outline;
        _bmp_->Canvas->MoveTo(_caption_width-3 , 0);
        _bmp_->Canvas->LineTo(_caption_width -1, 2);

      }
      
  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_Shape(void)
{
  //[2007.09.26.수][생성!!!]{---
  //컨트롤의 모양을 만든다.
  //}---------------------------

  //[VAR]
  //{
      TRect  rect;
      TRect  rect_caption;

      int    w, h;

      int    width, height;

  //}

  //[제목줄 폭 구하기]
  //{
      //caption 문자열의 width 를 구한다.
      FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, _caption, &width, &height);

      //실제 사용할 caption 폭을 설정한다.
      //_font.margin_size 는 처음 기본값인 0 을 사용한다.(한번만 그려주면 된다.)
      _caption_width = width + (_font.margin_size * 2) + 2;

  //}

  //[수정]
  //{
      //[닫기] 버튼의 폭과 배치를 반영하여 폭을 늘려준다.
      _caption_width += (_close_bmpbtns->Width + 4);

  //}

  //[폼 오려내기]
  //{
      _FormCut();

  //}

  //[모양 그리기]
  //{
      //[전체 배경 처리]
      //{
          //[영역정보]{-------------------
          rect = _bmp_->Canvas->ClipRect;
          //}-----------------------------

          //[바탕 지우기]{---------------------------
          _bmp_->Canvas->Brush->Color = IDE_COLOR_2;
          _bmp_->Canvas->FillRect(rect);
          //}----------------------------------------

      //}

      //[caption 처리]
      //{
          //[caption 영역]{----------------------
          rect_caption = rect;
          rect_caption.Bottom = _caption_height;
          //}------------------------------------

          //[caption 바탕 지우기]{----------------------------
          _bmp_->Canvas->Brush->Color = _ide_option->color_0;
          _bmp_->Canvas->FillRect(rect_caption);
          //}-------------------------------------------------

          //[caption 문자열]
          //{
              _font.margin_size = 0;

              //FONT_Out_String2(_bmp_, &_font, 0, 5, IDE_COLOR_3, _ide_option->color_0, true,
              //                 _caption,
              //                 d_FONT_underline_no, true, 0, IDE_COLOR_1,
              //                 &w, &h);

              //[2007.12.15.토][수정!!!]
              //위의 함수를 [형식] 을 적용할수 있는 이 함수로 바꾼다.
              FONT_Out_StyleString2(_bmp_, &_font, 0, 5, IDE_COLOR_3, _ide_option->color_0, true,
                                    d_FONTSTYLE_default,
                                    _caption,
                                    d_FONT_underline_no, true, 0, IDE_COLOR_1,
                                    &w, &h);

          //}

      //}

      //[닫기 단추 배치]
      //{
          _close_bmpbtns->_Top(5);
          _close_bmpbtns->_Left(_caption_width - _close_bmpbtns->Width - 5);

          //[단추 배경 지우기]
          //{
              rect.Left   = _close_bmpbtns->Left - 1;
              rect.Top    = _close_bmpbtns->Top  - 1;
              rect.Right  = _close_bmpbtns->Left + _close_bmpbtns->Width  + 1;
              rect.Bottom = _close_bmpbtns->Top  + _close_bmpbtns->Height + 1;

              _bmp_->Canvas->Brush->Color = IDE_COLOR_2;
              _bmp_->Canvas->FillRect(rect);

          //}

      //}

  //}

  //[테두리]
  //{
      _Border();

  //}

  //[view]{-------------
  //그린 것을 보여준다.
  _Draw();
  //}-------------------

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_Draw(void)
{
  BitBlt(this->Canvas->Handle, 0, 0,
         this->Width, this->Height,
         _bmp_->Canvas->Handle, 0, 0, SRCCOPY);

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_Caption(char  *pCaption)
{
  //[2007.12.14.금][생성!!!]{-------------------------------------------------------
  //[제목줄] 문자열을 지정된 문자열로 바꾸어 주고 전체를 다시 그려준다.
  //[제목줄] 이 달라지면 폼을 다시 오려 주어야 하므로 다시 전체를 그려 주어야 한다.
  //}-------------------------------------------------------------------------------

  //[VAR]
  //{
      int            width, height;

  //}

  //[caption 설정]
  //{
      //caption 문자열.(크게 바뀔일이 없다.)
      STR_Assign(_caption, pCaption);

      //높이 지정.
      _caption_height = 22;

      //caption 문자열의 width 를 구한다.
      FONT_Get_StringOutAreaInfo(&_font, d_FONTSTYLE_default, _caption, &width, &height);

      //실제 사용할 caption 폭을 설정한다.
      //_font.margin_size 는 처음 기본값인 0 을 사용한다.(한번만 그려주면 된다.)
      _caption_width = width + (_font.margin_size * 2) + 2;

  //}

  //[그리기]
  //{
      _Shape();

  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_Width(int  pWidth)
{
  //[2007.12.14.금][생성!!!]{-----------------------------------------------------------
  //폭을 바꾸어 주고 _bmp_ 등 관련 부분도 다 수정하고 폼도 다시 오려주고 다시 그려준다.
  //}-----------------------------------------------------------------------------------

  //[크기 조정]
  //{
      //지정 폭으로 폭을 조정한다.
      _bmp_->Width = pWidth;

      this->Width  = pWidth;

  //}

  //[그리기]
  //{
      _Shape();

  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_Height(int  pHeight)
{
  //[2007.12.14.금][생성!!!]{-------------------------------------------------------------
  //높이를 바꾸어 주고 _bmp_ 등 관련 부분도 다 수정하고 폼도 다시 오려주고 다시 그려준다.
  //}-------------------------------------------------------------------------------------

  //[크기 조정]
  //{
      //지정 폭으로 폭을 조정한다.
      _bmp_->Height = pHeight;

      this->Height  = pHeight;

  //}

  //[그리기]
  //{
      _Shape();

  //}

  return;

}

//------------------------------------------------------------------------------
//[동작홤수들]------------------------------------------------------------------
//------------------------------------------------------------------------------

void __fastcall ToptionIde_DialogBox_Form::_EVENT_CloseButton_Click(void)
{
  //[2007.09.26.수][생성!!!]{---
  //이 폼을 닫는다.
  //}---------------------------

  this->Close();

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Scroll_V(void)
{
  //[2009.04.19.일][생성!!!]{--------------------------------------------------------------
  //[수직 줄이동자] 가 움직이는 경우는 내부의 모든 컨트롤들을 [수직] 으로 이동시켜야 한다.
  //[2018.03.04.일][수정!!!]
  //}--------------------------------------------------------------------------------------

  ideColor_Label->_Top(2 - scroll_V->_position);
  comPort_Label->_Top(2 - scroll_V->_position + ideColor_Label->Height + 2);
  itemColor_Label->_Top(comPort_Label->Top + comPort_Label->Height + 2);
  backPhoto_Label->_Top(itemColor_Label->Top + itemColor_Label->Height + 2);
  backBright_Label->_Top(backPhoto_Label->Top + backPhoto_Label->Height + 2);
  alphaBlend_Label->_Top(backBright_Label->Top + backBright_Label->Height + 2);
  balloonHelp_Label->_Top(alphaBlend_Label->Top + alphaBlend_Label->Height + 2);

  //[2018.02.17.토][추가!!!]
  dotMatrix_Label->_Top(balloonHelp_Label->Top + balloonHelp_Label->Height + 2);

  //[2018.05.05.토][추가!!!]
  autoSave_Label->_Top(dotMatrix_Label->Top + dotMatrix_Label->Height + 2);

  //[2018.02.17.토][추가!!!]
  wine_Label->_Top(autoSave_Label->Top + autoSave_Label->Height + 2);

  //[폼 오려내기]
  //{
      //[2012.05.11.금][중요추가!!!]{-----------------------------------------
      //<optionIde_DialogBox_Form> 을 기본으로 한 다른 [대화상자] 는
      //별 문제가 없으나 정작, 원본인 <optionIde_DialogBox_Form> 대화상자는
      //이 [줄이동] 시에 내부 부품이 위로 올라가면 [오려낸부분] 이 하얗게되는
      //문제가 있다.
      //즉, [오려내기] 부분이 해제되 버린다.
      //이를 막기 위하여 일단 줄이동후 다시 해당위치를 [오려내기] 한다.
      //원래 [잦은빈도] 로 [오려내기] 를 하는 경우 [자원부족] 오듀 등이
      //발생할수 있으나 실험결과 안전한 것을 확인하였다.
      //단, 임시적인 것으로 나중에 더 좋은 방법 있다면 이 방법을 사용한다.
      //
      //[대화상자] 내부 [줄이동] 은 빈도수가 높이 않으므로 무리가 없다.
      //}---------------------------------------------------------------------

      _FormCut();

  //}

  //[wine 지원]
  //{
      //[2018.03.04.일][추가!!!]{------------------------------------------------------
      //[Linux:wine] 의 경우 보이지 않는 영역에 있다가 [줄이동] 으로 보이는 영역으로
      //올라오는 경우 제대로 그려지지 않아 [하얗게] 되는 경우가 있다.
      //전부 다시 그려주면 이상없이 동작된다.
      //
      //추가로, 이 기능을 넣으면 [전광판] 이 [회전] 중에도 모든 [그림부품] 이 완벽하게
      //그려진다. 따라서, [설정대화상자] 가 보일때 [전광판] 을 정지 시킬 필요가 없다.
      //}------------------------------------------------------------------------------

      if(_ide_option->wine == true)
      {
        ideColor_Label->_Draw();
        comPort_Label->_Draw();
        itemColor_Label->_Draw();
        backPhoto_Label->_Draw();
        backBright_Label->_Draw();
        alphaBlend_Label->_Draw();
        balloonHelp_Label->_Draw();
        dotMatrix_Label->_Draw();
        autoSave_Label->_Draw();
        wine_Label->_Draw();

      }

  //}
  
}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_ideColorSel_Btn(void)
{
  //[2009.04.20.월][생성!!!]{--------------------------
  //전체 색을 지정할 대화상자를 보여주고 임시설정한다.
  //}--------------------------------------------------  

  if(main_Form->color_ColorDialog->Execute())
  {
    ideColorView_Label->_BackColor(main_Form->color_ColorDialog->Color);

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_ideColorSet_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[환경변수] 에 지금 선택된 색을 지정한다.
  _ide_option->color_0_save = ideColorView_Label->_backColor;

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  ide_msgbox_Form->_MsgBox(d_MSGBOX_default,
                           "지정색은 통합개발환경을 다시 시작하면 반영됩니다.");

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_comPortSel_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[통신포트가 열려있나?]
  //{
      //[2018.03.06.화][추가!!]{----------------------------------------------------------
      //[통신포트] 가 열려있는 경우는 도중에 [포트번호] 가 바뀌지 않도록 처리하지 않는다.
      //}---------------------------------------------------------------------------------

      if(STR_Match(comPortOpen_Btn->_caption, "닫기"))
      {
        ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                 "[통신포트] 가 열려있는 경우는 [포트번호] 를 바꿀수 없습니다.");

        //더이상 처리하지 않고 바로 종료.
        goto lbEnd;

      }

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->portnumber, 3, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[통신포트 번호] 를 설정합니다.\r\n"
                                   "[10진수] 만 사용 가능하고 1 - 255 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          //[2018.02.21.수][수정!!!]
          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((1 <= tempVal) && (tempVal <= 255))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->portnumber = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "1 - 255 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->portnumber, 3, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "포트번호(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        comPortSel_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        //설정값에 포트 번호를 기록한것 까지만 처리하면 된다.
        //실제는 [열기/닫기] 버튼으로 다시 열어 주므로 여기서는 더이상 할 것이 없다.

    //}

  }

  lbEnd:

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_comPortOpen_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------
  //[2018.02.18.일][수정!!!]----------------------------------------------------------
  //"[v]맷돌직접연결" 과 기능이 중복되나 "[v]맷돌직접연결" 이 더 나중에 만들어 지고
  //이 함수의 기능을 전부 갖고 있으므로 "[v]맷돌직접연결" 의 기능으로 대체.
  //
  //<_vmosMdl_CheckBtn->_Checked()> 함수는 "[v]맷돌직접연결" 의 "확인설정" 상태를
  //가지고 처리하므로 호출전에 미리 "[v]맷돌직접연결" 에 해당 설정을 수행한다.
  //
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //
  //내부적으로 <_MsgBox> 를 사용하지 않으나 내부 코드안에서 [통신포트열기오류] 등 시에
  //해당 부분에서 <_MsgBox> 를 사용하므로 여기도 처리한다.
  //}---------------------------------------------------------------------------------

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  //[통신포트 열기/닫기]
  //{
      if(STR_Match(comPortOpen_Btn->_caption, "열기"))
      {
        ide_buttons_Form->_vmosMdl_CheckBtn->_Checked(true);

      }
      else
      {
        ide_buttons_Form->_vmosMdl_CheckBtn->_Checked(false);

      }

      //실제 통신포트 [열기/닫기] 는 여기서 수행.
      ide_buttons_Form->_EVENT_Click_vmosMdl_CheckBtn();

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------
  
  /*
  if(STR_Match(comPortOpen_Btn->_caption, "열기"))
  {
    //통신 포트를 열어준다.

    //통신 포트를 열지 못한 경우는 [버튼] 의 문자열을 바꾸지 않고 바로 종료한다.
    if(Ide_Comport_Open(_ide_option->portnumber) != true) return;

    //문자열을 바꿔준다.
    comPortOpen_Btn->_Caption("닫기");

  }
  else
  {
    //통신 포트를 닫아준다.

    //통신포트를 닫지 못한 경우는 [버튼] 의 문자열을 바꾸지 않고 바로 종료한다.
    if(Ide_Comport_Close() != true) return;

    //문자열을 바꿔준다.
    comPortOpen_Btn->_Caption("열기");

  } */

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_itemBreakPoint_bmpbtn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_breakpoint = main_Form->color_ColorDialog->Color;

    itemBreakPoint_bmpbtn->_ColorFront(_ide_option->color_breakpoint);

    //즉시 반영해준다.
    editor_edit_Form->_Debug_BreakPoint_RePaint();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_itemArrow_bmpbtn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_run_arrow = main_Form->color_ColorDialog->Color;

    itemArrow_bmpbtn->_ColorFront(_ide_option->color_run_arrow);

    //즉시 반영해준다.
    editor_edit_Form->_Debug_Arrow_RePaint();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_itemLineBox_bmpbtn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_linebox = main_Form->color_ColorDialog->Color;

    itemLineBox_bmpbtn->_ColorFront(_ide_option->color_linebox);

    //[2010.02.16.화][수정!!!]{----------------------------------------
    //<editor_linebox_Form> 을 사용하지 않고 [지정행] 을 사용한다.
    editor_edit_Form->_FocusLineBackColor(_ide_option->color_linebox);
    //}----------------------------------------------------------------

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_syntaxColorKeyword_Btn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_Keyword = main_Form->color_ColorDialog->Color;

    syntaxColorKeyword_Btn->_FontColor(_ide_option->color_Keyword);

    //편집기에 반영.
    editor_edit_Form->_EditBuf_Text();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_syntaxColorComment_Btn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_Comment = main_Form->color_ColorDialog->Color;

    syntaxColorComment_Btn->_FontColor(_ide_option->color_Comment);

    //편집기에 반영.
    editor_edit_Form->_EditBuf_Text();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_syntaxColor16_Btn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_HexWord = main_Form->color_ColorDialog->Color;

    syntaxColor16_Btn->_FontColor(_ide_option->color_HexWord);

    //편집기에 반영.
    editor_edit_Form->_EditBuf_Text();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_syntaxColor2_Btn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_BinWord = main_Form->color_ColorDialog->Color;

    syntaxColor2_Btn->_FontColor(_ide_option->color_BinWord);

    //편집기에 반영.
    editor_edit_Form->_EditBuf_Text();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_syntaxColorChar_Btn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_Char = main_Form->color_ColorDialog->Color;

    syntaxColorChar_Btn->_FontColor(_ide_option->color_Char);

    //편집기에 반영.
    editor_edit_Form->_EditBuf_Text();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_syntaxColorString_Btn(void)
{
  //[2009.04.20.월][생성!!!]

  if(main_Form->color_ColorDialog->Execute())
  {
    _ide_option->color_String = main_Form->color_ColorDialog->Color;

    syntaxColorString_Btn->_FontColor(_ide_option->color_String);

    //편집기에 반영.
    editor_edit_Form->_EditBuf_Text();

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_backPhoto_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---
  //전체 배경 그림을 바꾼다.
  //[2018.03.04.일][수정!!!]----
  //}---------------------------

  if(main_Form->photo_OpenPictureDialog->Execute() == true)
  {
    //경로를 환경 변수에 저장.
    STR_Assign(_ide_option->ideBackpicturePath, ((AnsiString)(main_Form->photo_OpenPictureDialog->FileName)).c_str());

    //[전체] 배경그림 바꾸기.
    editor_edit_Form->_BACKBMP_ChangeJpeg((AnsiString)_ide_option->ideBackpicturePath);
    tree_tree_Form->_BACKBMP_ChangeJpeg((AnsiString)_ide_option->ideBackpicturePath);
    msg_msg_Form->_BACKBMP_ChangeJpeg((AnsiString)_ide_option->ideBackpicturePath);

    //[전광판 배경 그림 교체]
    //{
        //[2018.03.04.일][추가!!!]{-------
        //[전광판] 배경 그림도 같이 교체.
        //}-------------------------------

        ide_editor_Form->_GDotMatrix_BackBmpChange();

    //}

  }

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_editBright_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->edit_back_brightness, 3, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[편집기] 배경 밝기를 설정합니다.\r\n"
                                   "[10진수] 만 사용 가능하고 0 - 255 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          //[2018.02.21.수][수정!!!]
          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((0 <= tempVal) && (tempVal <= 255))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->edit_back_brightness = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "0 - 255 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->edit_back_brightness, 3, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "편집기(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        editBright_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        editor_edit_Form->_BACKBMP_Brightness(_ide_option->edit_back_brightness);

    //}

  }

  lbEnd:

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_treeBright_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->tree_back_brightness, 3, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------
  
  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[정보창] 배경 밝기를 설정합니다.\r\n"
                                   "[10진수] 만 사용 가능하고 0 - 255 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          //[2018.02.21.수][수정!!!]
          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((0 <= tempVal) && (tempVal <= 255))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->tree_back_brightness = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "0 - 255 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->tree_back_brightness, 3, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "정보창(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        treeBright_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        tree_tree_Form->_BACKBMP_Brightness(_ide_option->tree_back_brightness);

    //}

  }

  lbEnd:

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_msgBright_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->msg_back_brightness, 3, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[알림창] 배경 밝기를 설정합니다.\r\n"
                                   "[10진수] 만 사용 가능하고 0 - 255 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          //[2018.02.21.수][수정!!!]
          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((0 <= tempVal) && (tempVal <= 255))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->msg_back_brightness = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "0 - 255 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->msg_back_brightness, 3, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "알림창(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        msgBright_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        msg_msg_Form->_BACKBMP_Brightness(_ide_option->msg_back_brightness);

    //}

  }

  lbEnd:

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_alphaBlend_CheckBtn(void)
{
  //[2009.04.20.월][생성!!!]

  if(alphaBlend_CheckBtn->_checked == true)
  {
    _ide_option->alphaBlendUse = true;

  }
  else
  {
    _ide_option->alphaBlendUse = false;

  }

  main_Form->AlphaBlend = _ide_option->alphaBlendUse;

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_alphaBlend_Btn(void)
{
  //[2009.04.20.월][생성!!!]{---------------------------------------------------------                                                      
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->alphaBlendValue, 3, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[통합개발환경] 자체의 [투명도] 를 설정합니다.\r\n"
                                   "[10진수] 만 사용 가능하고 10 - 255 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          //[2018.02.21.수][수정!!!]
          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((50 <= tempVal) && (tempVal <= 255))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->alphaBlendValue  = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "50 - 255 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->alphaBlendValue, 3, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "투명도(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        alphaBlend_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        main_Form->AlphaBlendValue = _ide_option->alphaBlendValue;

    //}

  }

  lbEnd:

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_balloonHelpUse_CheckBtn(void)
{
  //[2009.04.20.월][생성!!!]

  _ide_option->balloonHelpUse = balloonHelpUse_CheckBtn->_checked;

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_balloonHelpAlpha_CheckBtn(void)
{
  //[2009.04.20.월][생성!!!]

  ide_BalloonBox_Form->AlphaBlend      = balloonHelpAlpha_CheckBtn->_checked;
  ide_BalloonBox_Form->AlphaBlendValue = 215;
  _ide_option->balloonHelpAlphaBlend   = balloonHelpAlpha_CheckBtn->_checked;

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_balloonChangeNotSaveUse_CheckBtn(void)
{
  //[2018.05.09.수][생성!!!]

  _ide_option->balloonChangeNotSaveUse = balloonChangeNotSaveUse_CheckBtn->_checked;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_dotMatrixUse_CheckBtn(void)
{
  //[2018.02.17.토][생성!!!]

  _ide_option->dotmatrixUse = dotMatrixUse_CheckBtn->_checked;

  //[전광판 사용/정지]
  //{
      ide_editor_Form->_GDotMatrix_Use(_ide_option->dotmatrixUse);

  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_dotMatrixRotate_CheckBtn(void)
{
  //[2018.02.17.토][생성!!!]

  _ide_option->dotmatrixRotate = dotMatrixRotate_CheckBtn->_checked;

  //[전광판 회전/정지]
  //{
      ide_editor_Form->_GDotMatrix_Rotate(_ide_option->dotmatrixRotate);

  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_dotMatrixStr_Btn(void)
{
  //[2018.02.17.토][생성!!!]{---------------------------------------------------------
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //
  //여기서는 <_MsgBox> 를 사용하지 않지만 <_GDotMatrix_Str()> 안에서 사용하므로 처리.
  //}---------------------------------------------------------------------------------

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  //문자열 허용 길이 검사까지 가능한 전용 함수를 호출.
  ide_editor_Form->_GDotMatrix_Str();


  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------
  
}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_dotMatrixRotateTime_Btn(void)
{
  //[2018.02.19.월][생성!!!]{---------------------------------------------------------
  //[회전 시간 간격] 은 ms 값으로 작을수록 회전 속도가 빨라진다.
  //[2018.02.21.수][추가!!!]----------------------------------------------------------
  //[Linux:wine] 에서는 <Modal> 속성을 지원하지 않으므로 이를 위한 유사 처리를 수행.
  //기본 <Modal:유사처리> 는 <_MsgBox()> 내부에서 처리되므로 여기서는 호출부와 관련된
  //부가 처리만 수행.
  //}---------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->dotmatrixRotateTime, 4, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  //[wine 지원][2018.02.21.수][추가!!!]{-------------------
  //if(_ide_option->wine == true) { this->Enabled = false; }
  //}------------------------------------------------------

  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[전광판] 문자열 회전 시간 간격(ms)을 설정 합니다.\r\n"
                                   "값이 작을수록 회전 속도가 빨라집니다.\r\n"
                                   "[10진수] 만 사용 가능하고 10 - 1000 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          //[2018.02.21.수][수정!!!]
          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((10 <= tempVal) && (tempVal <= 1000))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->dotmatrixRotateTime  = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "10 - 1000 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->dotmatrixRotateTime, 4, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "회전속도(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        dotMatrixRotateTime_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        ide_editor_Form->_GDotMatrix->_RotTime(_ide_option->dotmatrixRotateTime);

    //}

  }

  lbEnd:

  //[wine 지원][2018.02.21.수][추가!!!]{------------------
  //if(_ide_option->wine == true) { this->Enabled = true; }
  //}-----------------------------------------------------

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_autoSaveUse_CheckBtn(void)
{
  //[2018.05.05.토][생성!!!]

  _ide_option->autoSaveUse = autoSaveUse_CheckBtn->_checked;

  Ide_AutoSave_Use(_ide_option->autoSaveUse);

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_autoSavePeriod_Btn(void)
{
  //[2018.05.05.토][생성!!!]

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];
      int    tempVal;

  //}

  //[현재 값 문자열 변환]
  //{
      CONV_LongVal_To_Str(_ide_option->autoSavePeriod, 2, false, tempStr);

  //}

  //[현재 설정값을 보여주기]
  //{
      ide_msgbox_Form->_edit_Edit->_EDIT_TextOut(tempStr);

  //}

  if(ide_msgbox_Form->_MsgBox_Edit(d_MSGBOX_default,
                                   "[편집기] 에 열려 있는 문서의 [자동 저장:주기] 값을 [분:단위] 로 설정 합니다.\r\n"
                                   "[10진수] 만 사용 가능하고 1 - 60 사이의 값만 사용 가능합니다.") == true)
  {
    //이 경우는 설정을 반영해 주어야 한다.

    //[10진수 인지 학인]
    //{
        if(STR_Is_Dec(ide_msgbox_Form->_edit_Edit->_editbuf) != true)
        {
          //10진수 문자열이 아닌 것이다.
          //오류 알림글은 STR_Is_Dec() 함수 내부적으로 자동 처리 된다.

          goto lbEnd;

        }

    //}

    //[문자열 => 값 으로 변환]
    //{
        CONV_DecStr_To_IntVal(ide_msgbox_Form->_edit_Edit->_editbuf, &tempVal);

    //}

    //[값 범위 확인]
    //{
        if((1 <= tempVal) && (tempVal <= 60))
        {
          //이상없는 값을 여기서 할당한다.
          _ide_option->autoSavePeriod  = tempVal;

        }
        else
        {
          //이전 설정값이 그대로 남아 있게 된다.
          ide_msgbox_Form->_MsgBox(d_MSGBOX_error,
                                   "1 - 60 사이의 값만 사용할수 있습니다.");

        }

    //}

    //[값 => 문자열로 변환]
    //{
        CONV_LongVal_To_Str(_ide_option->autoSavePeriod, 2, false, tempStr);

    //}

    //[문자열 합성/표시]
    //{
        //버튼에 표시할 문자열을 합성한다.
        STR_Assign(tempLineStr, "주기(");
        STR_Add(tempLineStr, tempStr);
        STR_Add(tempLineStr, ")");

        autoSavePeriod_Btn->_Caption(tempLineStr);

    //}

    //[수정 반영]
    //{
        Ide_AutoSave_Period(_ide_option->autoSavePeriod);
        
    //}

  }

  lbEnd:

}

void __fastcall ToptionIde_DialogBox_Form::_EVENT_Click_wineUse_CheckBtn(void)
{
  //[2018.02.17.토][생성!!!]{-------------------------------------
  //별도 동작이 없으므로 설정값을 환경 변수에 기록하는 것만 수행.
  //}-------------------------------------------------------------
  
  _ide_option->wine = wineUse_CheckBtn->_checked;

  return;

}

void __fastcall ToptionIde_DialogBox_Form::FormMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  //[2007.09.26.수][생성!!!]{-------
  //현재 [폼 이동] 처리에 사용한다.
  //}-------------------------------

  //[VAR]
  //{
      //[2018.03.17.토][추가!!!]
      TPoint  mousePos;

  //}

  //[전광판]
  //{
      //[2010.04.03.토][추가!!!]{-----------------------------
      //[전광판] 을 일시 정지 시킨다.
      //이는 이동, 크기조정시 끊어짐 현상을 막기 위한 것이다.
      //}-----------------------------------------------------

      ide_editor_Form->_GDotMatrix_RotateTemp(false);

  //}

  //[캡션바] 영역에서만 처리되어야 한다.
  if(((0 <= X) && (X < _caption_width)) &&
     ((0 <= Y) && (Y < _caption_height)))
  {
    if(Button == mbLeft)
    {
      //[위치 기록]
      //{
          //[2018.03.17.토][수정!!!]{-----------------------------------------------------
          //[전체화면] 을 대상으로한 위치 사용.
          //이는 <GVmos> 등 다른 Form 안에 생성되는 경우에도 동일하게 동작 시키기 위한것.
          //}-----------------------------------------------------------------------------

          //[전체화면] 을 대상으로 마우스 위치 얻기.
          GetCursorPos(&mousePos);

          //현재 <this> 위치와 [마우스] 위치 간의 거리 얻기.
          //항상 같은 거리를 유지하는 방법으로 [제목줄 이동] 을 구현하기 위한것.
          deltaLeft = mousePos.x - this->Left;
          deltaTop  = mousePos.y - this->Top;

      //}

      //caption 이 선택된 것을 알린다.
      _caption_selected = true;

      //[wine 지원]
      //{
          //[2018.03.03.토][추가!!!]{---------
          //[제목줄] 이동을 위한 타이머 켜기.
          //}---------------------------------

          if(_ide_option->wine == true)
          {
            captionMoveTimer->Enabled = true;

          }

      //}

    }

  }   

  return;

}

void __fastcall ToptionIde_DialogBox_Form::FormMouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
  //[2007.09.26.수][생성!!!]{----------------------
  //마우스로 caption 을 집어 끄는 경우를 처리한다.
  //}----------------------------------------------

  //[VAR]
  //{
      //[2018.03.17.토][추가!!!]
      TPoint  mousePos;

  //}

  //[캡션바 이동]
  //{
      //[캡션바] 영역에서만 처리되어야 한다.
      if(((0 <= X) && (X < _caption_width)) &&
         ((0 <= Y) && (Y < _caption_height)) ||
         //마우스로 집어  끄는 경우 영역을 벗어난 경우도 처리 되어야 한다.
         //이는 집어 끌다가 놓치는 경우를 막기 위한 것이다.
         (Shift.Contains(ssLeft)))
      {
        if((Shift.Contains(ssLeft)) && (_caption_selected == true))
        {
          //caption 을 마우스로 집어끄는 경우 Form 을 이동 시켜야 한다.

          //[wine 지원]
          //{
              //[2018.03.03.토][추가!!!]{-------------------------------
              //<Linux:wine> 에서 구동 중이라면 여기서 처리하지 않는다.
              //<captionMoveTimerTimer()> 안에서 처리된다.
              //}-------------------------------------------------------

              if(_ide_option->wine == true)
              {
                //[Linux:wine]
                //이 경우 아래에서 사용하는 <Left>, <Top> 값은 <captionMoveTimer> 안에서
                //수정되고 있는 정확한 값으로 처리.

              }
              else
              {
                //[윈도우]

                //[위치 이동]
                //{
                    //[2018.03.17.토][수정!!!]{-----------------------------------------------------
                    //[전체화면] 을 대상으로한 위치 사용.
                    //이는 <GVmos> 등 다른 Form 안에 생성되는 경우에도 동일하게 동작 시키기 위한것.
                    //}-----------------------------------------------------------------------------

                    //[전체화면] 을 대상으로 마우스 위치 얻기.
                    GetCursorPos(&mousePos);

                    //현재 <this> 위치와 [마우스] 위치 간의 거리를
                    //항상 같은 거리로 유지하는 방법으로 [제목줄 이동] 을 구현.
                    this->Left = mousePos.x - deltaLeft;
                    this->Top  = mousePos.y - deltaTop;

                //}

              }

          //}

        }

      }

  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::FormMouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  //[2007.09.26.수][생성!!!]

  //[wine 지원]
  //{
      //[2018.03.03.토][추가!!!]{---------
      //[제목줄] 이동을 위한 타이머 끄기.
      //}---------------------------------

      if(_ide_option->wine == true)
      {
        //<FormMouseUp> 에서는 무조건 타이머 정지.
        captionMoveTimer->Enabled = false;

      }

  //}
  
  //[전광판]
  //{
      //[2010.02.23.화][추가!!!]{-------------
      //[전광판] 을 다시 정지에서 해제시킨다.
      //}-------------------------------------

      ide_editor_Form->_GDotMatrix_RotateTemp(true);

  //}

  if(((0 <= X) && (X < _caption_width)) &&
     ((0 <= Y) && (Y < _caption_height)))
  {
    if(Button == mbRight)
    { 

    }

  }

  //[해제]
  //{
      //caption 선택을 해제한다.
      _caption_selected = false;

  //}

  return;

}

void __fastcall ToptionIde_DialogBox_Form::FormShow(TObject *Sender)
{
  //[2009.04.21.화][생성!!!]{----------------------------------------------------------------
  //설정 대화 상자를 보여주기 전에 현재 [설정] 상태그대로 보여준다.
  //
  //[2018.02.17.토][수정!!!]-----------------------------------------------------------------
  //[2018.02.19.월][수정!!!]-----------------------------------------------------------------
  //[2018.02.12.수][수정!!!]-----------------------------------------------------------------
  //[Linux:wine] 의 경우 [전광판] 이 돌고 있는 경우 [수직줄이동자] 이동시 내부 [그리부품] 이
  //제대로 [다시그리기] 되지 못하는 문제가 발생한다([윈도우] 는 무관).
  //[Linux:wine] 이 경우는 일시적으로 [전광판:회전] 을 중지시키도록 수정.
  //[대화상자:닫기] 시 다시 활성화.
  //
  //[2018.05.05.토][수정!!!]-----------------------------------------------------------------
  //[2018.05.09.수][수정!!!]-----------------------------------------------------------------
  //}----------------------------------------------------------------------------------------

  //[VAR]
  //{
      char   tempLineStr[OPT_wordStrSize];
      char   tempStr[OPT_wordStrSize];

  //}


  //[wine 지원:전광판]
  //{
      //[2018.02.21.수][추가!!!]{------------------------------------------------
      //[Linux:wine] 의 경우는 [대화상자:보이기] 때 [전광판] 을 정지시키고 시작.
      //}------------------------------------------------------------------------

      //[2018.03.04.일][주석처리]{--------------------------------------------------------
      //<_EVENT_Scroll_V()> 에서 각 [그림부품->_Draw()] 로 처리하여 어떤 경우라도
      //완벽하게 그려지므로 여기서 [전광판] 관련은 처리하지 않는다.
      //if(_ide_option->wine == true) { ide_editor_Form->_GDotMatrix_RotateTemp(false); }
      //}---------------------------------------------------------------------------------

  //}

  //[전체 색 설정]--------------------------------------------------------------
  ideColorView_Label->_BackColor(_ide_option->color_0);
  //[통신 포트 번호]------------------------------------------------------------
  //[값 => 문자열로 변환]
  CONV_LongVal_To_Str(_ide_option->portnumber, 3, false, tempStr);
  //버튼에 표시할 문자열을 합성한다.
  STR_Assign(tempLineStr, "포트번호(");
  STR_Add(tempLineStr, tempStr);
  STR_Add(tempLineStr, ")");
  comPortSel_Btn->_Caption(tempLineStr);
  //[정지점 색 설정]------------------------------------------------------------
  itemBreakPoint_bmpbtn->_ColorFront(_ide_option->color_breakpoint);
  //[지정 화살표 색 설정]-------------------------------------------------------
  itemArrow_bmpbtn->_ColorFront(_ide_option->color_run_arrow);
  //[행 지정자 설정]------------------------------------------------------------
  itemLineBox_bmpbtn->_ColorFront(_ide_option->color_linebox);
  //[예약어 색 설정]------------------------------------------------------------
  syntaxColorKeyword_Btn->_FontColor(_ide_option->color_Keyword);
  //[주석문 색 설정]------------------------------------------------------------
  syntaxColorComment_Btn->_FontColor(_ide_option->color_Comment);
  //[16진수 색 설정]------------------------------------------------------------
  syntaxColor16_Btn->_FontColor(_ide_option->color_HexWord);
  //[2진수 색 설정]-------------------------------------------------------------
  syntaxColor2_Btn->_FontColor(_ide_option->color_BinWord);
  //[문자상수 색 설정]----------------------------------------------------------
  syntaxColorChar_Btn->_FontColor(_ide_option->color_Char);
  //[문자열 색 설정]------------------------------------------------------------
  syntaxColorString_Btn->_FontColor(_ide_option->color_String);
  //[편집기 배경 밝기 설정]-----------------------------------------------------
  //[값 => 문자열로 변환]
  CONV_LongVal_To_Str(_ide_option->edit_back_brightness, 3, false, tempStr);
  //버튼에 표시할 문자열을 합성한다.
  STR_Assign(tempLineStr, "편집기(");
  STR_Add(tempLineStr, tempStr);
  STR_Add(tempLineStr, ")");
  editBright_Btn->_Caption(tempLineStr);
  //[정보창 배경 밝기 설정]-----------------------------------------------------
  //[값 => 문자열로 변환]
  CONV_LongVal_To_Str(_ide_option->tree_back_brightness, 3, false, tempStr);
  //버튼에 표시할 문자열을 합성한다.
  STR_Assign(tempLineStr, "정보창(");
  STR_Add(tempLineStr, tempStr);
  STR_Add(tempLineStr, ")");
  treeBright_Btn->_Caption(tempLineStr);
  //[알림창 배경 밝기 설정]-----------------------------------------------------
  //[값 => 문자열로 변환]
  CONV_LongVal_To_Str(_ide_option->msg_back_brightness, 3, false, tempStr);
  //버튼에 표시할 문자열을 합성한다.
  STR_Assign(tempLineStr, "알림창(");
  STR_Add(tempLineStr, tempStr);
  STR_Add(tempLineStr, ")");
  msgBright_Btn->_Caption(tempLineStr);
  //[투명 기능 사용]------------------------------------------------------------
  alphaBlend_CheckBtn->_Checked(_ide_option->alphaBlendUse);
  //[투명도 설정]---------------------------------------------------------------
  //[값 => 문자열로 변환]
  CONV_LongVal_To_Str(_ide_option->alphaBlendValue, 3, false, tempStr);
  //버튼에 표시할 문자열을 합성한다.
  STR_Assign(tempLineStr, "투명도(");
  STR_Add(tempLineStr, tempStr);
  STR_Add(tempLineStr, ")");
  alphaBlend_Btn->_Caption(tempLineStr);

  //[풍선 도움말 설정]
  //{
      //퐁선 도움말 사용.
      balloonHelpUse_CheckBtn->_Checked(_ide_option->balloonHelpUse);

      //풍선도움말 [투명기능] 사용.
      balloonHelpAlpha_CheckBtn->_Checked(_ide_option->balloonHelpAlphaBlend);

      //[2018.05.09.수][추가!!!]{-------------------------------------------------------
      //문서 수정 알림 사용.
      balloonChangeNotSaveUse_CheckBtn->_Checked(_ide_option->balloonChangeNotSaveUse);
      //}-------------------------------------------------------------------------------

  //}

  //[전광판 설정]
  //{
      //[2018.02.17.토][추가!!!]
      dotMatrixUse_CheckBtn->_Checked(_ide_option->dotmatrixUse);
      dotMatrixRotate_CheckBtn->_Checked(_ide_option->dotmatrixRotate);

      //문자열은 해당 대화상장서 자동으로 다시 출력해 준다.

      //[회전속도 설정]
      //{
          //[값 => 문자열로 변환]
          CONV_LongVal_To_Str(_ide_option->dotmatrixRotateTime, 4, false, tempStr);

          //버튼에 표시할 문자열 합성.
          STR_Assign(tempLineStr, "회전속도(");
          STR_Add(tempLineStr, tempStr);
          STR_Add(tempLineStr, ")");
          dotMatrixRotateTime_Btn->_Caption(tempLineStr);

      //}

  //}

  //[자동 저장 설정]
  //{
      //[2018.05.05.토][추가!!!]
      autoSaveUse_CheckBtn->_Checked(_ide_option->autoSaveUse);

      //[회전속도 설정]
      //{
          //[값 => 문자열로 변환]
          CONV_LongVal_To_Str(_ide_option->autoSavePeriod, 2, false, tempStr);

          //버튼에 표시할 문자열 합성.
          STR_Assign(tempLineStr, "주기(");
          STR_Add(tempLineStr, tempStr);
          STR_Add(tempLineStr, ")");
          autoSavePeriod_Btn->_Caption(tempLineStr);

      //}
      
  //}

  //[wine 설정]
  //{
      //[2018.02.17.토][추가!!!]
      wineUse_CheckBtn->_Checked(_ide_option->wine);

  //}

  return;

} 

void __fastcall ToptionIde_DialogBox_Form::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  //[wine 지원:전광판]
  //{
      //[2018.02.21.수][추가!!!]{------------------------------------
      //[Linux:wine] 의 경우는 [대화상자:닫기] 때 [전광판] 활성화.
      //}------------------------------------------------------------

      //[2018.03.04.일][주석처리]{-------------------------------------------------------
      //<_EVENT_Scroll_V()> 에서 각 [그림부품->_Draw()] 로 처리하여 어떤 경우라도
      //완벽하게 그려지므로 여기서 [전광판] 관련은 처리하지 않는다.
      //if(_ide_option->wine == true) { ide_editor_Form->_GDotMatrix_RotateTemp(true); }
      //}--------------------------------------------------------------------------------

  //}

}

void __fastcall ToptionIde_DialogBox_Form::captionMoveTimerTimer(
      TObject *Sender)
{
  //[2018.03.03.토][생성!!!]{---------------------------
  //[Linux:wine] 에서 [제목줄:이동] 을 지원하기 위한것.
  //}---------------------------------------------------

  //[VAR]
  //{
      TPoint  mousePos;

  //}

  //[위치 수정]
  //{
      //[!]{-----------------------------------------------------------------------------
      //이전 방식은 <Linux:wine> 에서는 빠르게 이동하는 경우 [떨림] 현상이 생기고
      //이동이 끊어지는 문제가 발생.
      //이는 <Linux:wine> 에서 [제목줄] 밖으로 [화면지정자] 가 나가는 경우를 제대로
      //처리하지 못하는 문제인듯.
      //따라서, 기존처럼 [상대좌표] 를 사용하지 않고 [절대좌표] 를 사용하는 것으로 수정.
      //}--------------------------------------------------------------------------------

      //[마우스 절대 위치 얻기]
      //{
          //화면상의 [마우스] 절대 위치를 얻는다.
          GetCursorPos(&mousePos);

      //}

      //[이동]
      //{
          //[2018.03.17.토][수정!!!]{---------------------------------
          //현재 <this> 위치와 [마우스] 위치 간의 거리를
          //항상 같은 거리로 유지하는 방법으로 [제목줄 이동] 을 구현.
          //자세한 내용은 [제목줄 이동] 관련 부분 설명 연관 참고.
          //}---------------------------------------------------------
          
          this->Left = mousePos.x - deltaLeft;
          this->Top  = mousePos.y - deltaTop;

      //}

  //}

}






