//--------------------------------------------------------------------------- #include #include "Define.h" //2001.4.23. by lhskys RegFilename¸¦ ¾²±â À§ÇØ.. #pragma hdrstop #include "Environment.h" #include "MainMenu.h" #include "CombiItemEdit_F.h" //--------------------------------------------------------------------------- #include "Calc_F.h" // °è»ê±â ÄÄÆ÷³ÍÆ® Á¦°Å - by monkman (2008.06.17) //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "RzEdit" #pragma link "RzSpnEdt" #pragma link "RzBtnEdt" #pragma link "RzChkLst" #pragma link "RzLstBox" #pragma link "RzButton" #pragma link "RzPanel" #pragma link "RzRadChk" #pragma link "RzRadGrp" #pragma link "RzTabs" #pragma link "RzBckgnd" #pragma link "RzLabel" #pragma resource "*.dfm" //--------------------------------------------------------------------- #define IDS_GRID StringTable[0] #define IDS_DPI StringTable[1] #define IDS_GRIDCOLOR StringTable[2] #define IDS_SECTIONLINE StringTable[3] #define IDS_SECTIONCOLOR StringTable[4] #define IDS_CATALOG StringTable[5] #define IDS_MAX_UNDO_COUNT StringTable[6] #define IDS_LIMIT StringTable[7] #define IDS_OPTION StringTable[9] #define IDS_SIZETYPE StringTable[10] #define IDS_SIZE StringTable[11] // ÀÌ¹Ì ¿¹¾àµÇ¾î ÀÖ¾ú±â ¶§¹®¿¡ °Ç³Ê ¶ê (2008.04.29) #define IDS_VECTOR StringTable[18] #define IDS_VECTOR_MODE StringTable[19] #define IDS_VECTOR_QUALITY StringTable[20] #define IDS_VECTOR_SPEED StringTable[21] #define IDS_COMBIITEMEDITOR StringTable[22] //#define IDS_WORKAREA StringTable[22] //#define IDS_UNDO StringTable[52] //#define IDS_MENU_SELECT StringTable[54] //#define IDS_PEN_FULLVIEW StringTable[55] //#define IDS_CLOSE_MESSAGE StringTable[56] //#define IDS_ORIGINAL StringTable[57] //--------------------------------------------------------------------- TEnvironmentForm *EnvironmentForm; //--------------------------------------------------------------------------- __fastcall TEnvironmentForm::TEnvironmentForm(TComponent* Owner) : TForm(Owner) { //============================================ StringTable.Create(DirectoryBin, Language, "Environment"); SetSmallFont(Font); rgUnit->Caption = IDS_COMMON_UNIT; TabSheet1->Caption = IDS_GRID; TabSheet2->Caption = IDS_COMMON_UNDO; //IDS_OPTION; TabSheet3->Caption = IDS_COMMON_AUTOSAVE; Label1->Caption = IDS_COMMON_HORIZONTAL; Label2->Caption = IDS_COMMON_VERTICAL; Label3->Caption = IDS_CATALOG; Label4->Caption = IDS_GRIDCOLOR; Label5->Caption = IDS_SECTIONLINE; Label6->Caption = IDS_SECTIONCOLOR; Label7->Caption = IDS_MAX_UNDO_COUNT; Label8->Caption = IDS_LIMIT; Label9->Caption = IDS_DPI; Label10->Caption = IDS_COMMON_MINUTES; btnOK->Caption = IDS_COMMON_BUTTONOK; btnCancel->Caption = IDS_COMMON_BUTTONCANCEL; CheckBox1->Caption = IDS_COMMON_AUTOSAVE; SizeType->Caption = IDS_SIZETYPE; RadioGroup2->Caption = IDS_SIZE; tabshtVectorMode->Caption = IDS_VECTOR; rdogrpVectorMode->Caption = IDS_VECTOR_MODE; rdogrpVectorMode->Items->Strings[0] = IDS_VECTOR_QUALITY; rdogrpVectorMode->Items->Strings[1] = IDS_VECTOR_SPEED; for (int i = 0; i < MainMenuGroup->Items->Count; i++) { MainMenuGroup->Items->Items[i]->Hint = StringTable[i + 23]; } // tsMenuSelect->Caption = IDS_MENU_SELECT; // rzbitbtnGoBackDefault->Caption = IDS_ORIGINAL; // rzckPenAndFullView->Caption = IDS_PEN_FULLVIEW; rzbitbtnCombiEdit->Caption = IDS_COMBIITEMEDITOR; rzgbWorkAreaUndo->Caption = IDS_COMMON_WINDOW; rzgbUndo->Caption = IDS_COMMON_UNDO; lbMaxUndoNo->Caption = IDS_MAX_UNDO_COUNT; lbMaxLimit->Caption = IDS_LIMIT; //============================================ #ifdef WORKSHEET rzbitbtnCombiEdit->Visible = true; #endif DefaultMenuNumber = 32; DefaultMenuOrder = "0 1 2 4 5 6 31 7 8 9 10 11 12 13 15 14 16 17 18 19 20 21 22 23 24 25 26 27 28 3 29 30"; } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::FormCreate(TObject *Sender) { TIniFile *IniFile = new TIniFile(AppDataItem+"\\status.ini"); if (IniFile) { seDPI->Value = IniFile->ReadInteger("CanvasInfor", "DPI", 160); rgUnit->ItemIndex = IniFile->ReadInteger("Grid", "Unit", 0); rceGapX->Text = IniFile->ReadString("Grid", "GapX", "1.0"); rceGapY->Text = IniFile->ReadString("Grid", "GapY", "1.0"); int Count = IniFile->ReadInteger("Grid", "Catalog-Count", 0); for (int i=0; iItems->Add(IniFile->ReadString("Grid", "Catalog-"+String(i), "")); } shGridColor->Brush->Color = (TColor) IniFile->ReadInteger("Grid", "Color", clBlack); seSectionNumber->Value = IniFile->ReadInteger("Grid", "LinesPerSection", 0); shSectionColor->Brush->Color = (TColor) IniFile->ReadInteger("Grid", "SectionColor", clBlack); spWorkAreaMaxUndo->Value = IniFile->ReadInteger("Window", "MaxUndo", 100); spMaxUndo->Value = IniFile->ReadInteger("Undo", "MaxCount", 10); RadioGroup1->ItemIndex = IniFile->ReadInteger("MainImage", "Unit", 0); CheckBox1->Checked = IniFile->ReadBool("AutoSave", "Check", false); spMinute->Value = IniFile->ReadInteger("AutoSave", "Min", 5); rzchkbxAutoSaveJpg->Checked = IniFile->ReadBool("AutoSave", "JPG", false); //=============================== 2001.4.23 by lhskys ȯ°æ¼³Á¤ -> Á¾ÀÌ Size int Sizetype; Sizetype = IniFile->ReadInteger("MainImage", "Size", 0); if(Sizetype <5) RadioGroup2->ItemIndex = Sizetype; else RadioGroup2->ItemIndex = Sizetype - 1; //=============================== // Vector Quality, Speed Mode Ãß°¡ - by monkman (2008.03.28) rdogrpVectorMode->ItemIndex = IniFile->ReadInteger("VectorForm", "VectorMode", 0); rzchkbxAntiAlias->Checked = IniFile->ReadBool("VectorForm", "AntiAlias", false); rzckPenAndFullView->Checked = IniFile->ReadBool("MenuView", "PenAndFullView", false); delete IniFile; } FUnit = uDot; View(NULL); #ifdef TRIAL seDPI->Enabled = false; RadioGroup2->Enabled = false; #endif PageControl->TabIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::rgUnitClick(TObject *Sender) { double dGapX, dGapY; if (!(TryStrToFloat(rceGapX->Text, dGapX) && TryStrToFloat(rceGapY->Text, dGapY))) return; switch (FUnit) { case 1: rceGapX->Text = FloatToStr(dGapX*seDPI->Value); rceGapY->Text = FloatToStr(dGapY*seDPI->Value); break; case 2: rceGapX->Text = FloatToStr(dGapX*(seDPI->Value/2.54)); rceGapY->Text = FloatToStr(dGapY*(seDPI->Value/2.54)); break; } FUnit = TUnit(rgUnit->ItemIndex); //Assinging int to Tputils switch (FUnit) { case 1: rceGapX->Text = FloatToStr(dGapX/seDPI->Value); rceGapY->Text = FloatToStr(dGapY/seDPI->Value); break; case 2: rceGapX->Text = FloatToStr(dGapX/(seDPI->Value/2.54)); rceGapY->Text = FloatToStr(dGapY/(seDPI->Value/2.54)); break; } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::View(TObject *Sender) { int p; Image->Canvas->Pen->Color = shGridColor->Brush->Color; for (p=0; pWidth; p+=5) { Image->Canvas->MoveTo(p, 0); Image->Canvas->LineTo(p, Image->Height); } for (p=0; pHeight; p+=5) { Image->Canvas->MoveTo(0, p); Image->Canvas->LineTo(Image->Width, p); } if (seSectionNumber->Value>0) { Image->Canvas->Pen->Color = shSectionColor->Brush->Color; for (p=0; pWidth; p+=5*seSectionNumber->Value) { Image->Canvas->MoveTo(p, 0); Image->Canvas->LineTo(p, Image->Height); } for (p=0; pHeight; p+=5*seSectionNumber->Value) { Image->Canvas->MoveTo(0, p); Image->Canvas->LineTo(Image->Width, p); } } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::sbCatalogAddClick(TObject *Sender) { double dGapX, dGapY; if (TryStrToFloat(rceGapX->Text, dGapX) && TryStrToFloat(rceGapY->Text, dGapY)) { lbGrid->Items->Add(GridToStr(FUnit, dGapX, dGapY)); } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::sbCatalogDeleteClick(TObject *Sender) { lbGrid->Items->Delete(lbGrid->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::lbGridDblClick(TObject *Sender) { TGrid Grid = StrToGrid(lbGrid->Items->Strings[lbGrid->ItemIndex]); rgUnit->ItemIndex = Grid.Unit; rceGapX->Text = FloatToStr(Grid.X); rceGapY->Text = FloatToStr(Grid.Y); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::sbGridColorClick(TObject *Sender) { if (GridColorDialog->Execute()) { shGridColor->Brush->Color = GridColorDialog->Color; View(NULL); } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::seSectionNumberChange(TObject *Sender) { if (seSectionNumber->Text.Length()>0) { View(NULL); } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::sbSectionColorClick(TObject *Sender) { if (GridColorDialog->Execute()) { shSectionColor->Brush->Color = GridColorDialog->Color; View(NULL); } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::btnOKClick(TObject *Sender) { TIniFile *IniFile = new TIniFile(AppDataItem+"\\status.ini"); if (IniFile) { IniFile->WriteInteger("CanvasInfor", "DPI", seDPI->Value); IniFile->WriteInteger("Grid", "Unit", rgUnit->ItemIndex); IniFile->WriteString("Grid", "GapX", rceGapX->Text); IniFile->WriteString("Grid", "GapY", rceGapY->Text); int Count = IniFile->ReadInteger("Grid", "Catalog-Count", 0); IniFile->WriteInteger("Grid", "Catalog-Count", lbGrid->Items->Count); int i = 0; while (true) { if (iItems->Count) { IniFile->WriteString("Grid", "Catalog-"+String(i), lbGrid->Items->Strings[i]); } else if (iDeleteKey("Grid", "Catalog-"+String(i)); } else break; i++; } IniFile->WriteInteger("Grid", "Color", shGridColor->Brush->Color); IniFile->WriteInteger("Grid", "LinesPerSection", seSectionNumber->Value); IniFile->WriteInteger("Grid", "SectionColor", shSectionColor->Brush->Color); IniFile->WriteInteger("Window", "MaxUndo", spWorkAreaMaxUndo->Value); IniFile->WriteInteger("MainImage", "Unit", RadioGroup1->ItemIndex); IniFile->WriteInteger("MainImage","Size",RadioGroup2->ItemIndex); //2001.4.2 by lhskys ȯ°æ¼³Á¤ -> Á¾ÀÌ Size IniFile->WriteInteger("Undo", "MaxCount", spMaxUndo->Value); //=============================================== 2001.4.23. by lhskys Á¾ÀÌ size ¹× ´ÜÀ§... if(RadioGroup2->ItemIndex == 0)TREG_Size = "cstA4"; else if(RadioGroup2->ItemIndex == 1)TREG_Size = "cstA3"; else if(RadioGroup2->ItemIndex == 2)TREG_Size = "cstA2"; else if(RadioGroup2->ItemIndex == 3)TREG_Size = "cstA1"; else if(RadioGroup2->ItemIndex == 4)TREG_Size = "cstA0"; else if(RadioGroup2->ItemIndex == 5)TREG_Size = "cstLetter"; else if(RadioGroup2->ItemIndex == 6)TREG_Size = "cstLegal"; else if(RadioGroup2->ItemIndex == 7)TREG_Size = "cstTabloid"; if(RadioGroup1->ItemIndex == 0)TUnits = "uCm"; else if(RadioGroup1->ItemIndex == 1)TUnits = "uInch"; else if(RadioGroup1->ItemIndex == 2)TUnits = "uDot"; /* #ifndef LOCK_USB TRegIniFile *RegIniFile = NULL; RegIniFile = new TRegIniFile(RegFilename); RegIniFile->RootKey = HKEY_LOCAL_MACHINE; RegIniFile->OpenKey(RegFilename + "\\",true); // yw RegIniFile->WriteString("Common", "TREG_Size", TREG_Size); RegIniFile->WriteString("Common", "TUnits", TUnits); if (RegIniFile) delete RegIniFile; #else IniFile->WriteString("Common", "TREG_Size", TREG_Size); IniFile->WriteString("Common", "TUnits", TUnits); #endif */ IniFile->WriteString("Common", "TREG_Size", TREG_Size); IniFile->WriteString("Common", "TUnits", TUnits); //=============================================== IniFile->WriteBool("AutoSave", "Check", CheckBox1->Checked); IniFile->WriteInteger("AutoSave", "Min", spMinute->Value); IniFile->WriteInteger("AutoSave", "JPG", rzchkbxAutoSaveJpg->Checked); // Vector Quality, Speed Mode Ãß°¡ - by monkman (2008.03.28) IniFile->WriteInteger("VectorForm", "VectorMode", rdogrpVectorMode->ItemIndex); // 0:Quality, 1:Speed IniFile->WriteBool("VectorForm", "AntiAlias", rzchkbxAntiAlias->Checked); // // OK ¹öưÀ» ´©¸£¸é status.ini¿¡ °¹¼ö¿Í Order°¡ ÀúÀåµÈ´Ù. // // Number´Â MainMenuGroup¿¡ ÀÖ´Â ¾ÆÀÌÅÛÀÇ °¹¼öÀ̰í // // Order´Â MainMenuGroup¿¡ ÀÖ´Â ¾ÆÀÌÅÛ ¼ø¼­´ë·ÎÀÇ ImageIndex°ªÀÌ´Ù. // // ÀÌ °ªµéÀ» ½ºÆäÀ̽º·Î ±¸ºÐÇÏ¿© Â÷·Ê·Î ¿¬°áÇÏ¿© StringÀ¸·Î ¸¸µç ÈÄ status.ini¿¡ ³Ö¾îÁØ´Ù. // String SelectedMenuOrder; // for (int i = 0; i < MainMenuGroup->Items->Count; i++) { // SelectedMenuOrder += IntToStr(MainMenuGroup->Items->Items[i]->ImageIndex); // SelectedMenuOrder += " "; // } // IniFile->WriteInteger("MenuSelect", "Number", MainMenuGroup->Items->Count); // IniFile->WriteString("MenuSelect", "Order", SelectedMenuOrder); // IniFile->WriteBool("MenuView", "PenAndFullView", rzckPenAndFullView->Checked); delete IniFile; } // Application->MessageBox(IDS_CLOSE_MESSAGE.c_str(), L"Information", MB_ICONINFORMATION); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::CalcButtonClick(TObject *Sender) { // °è»ê±â ÄÄÆ÷³ÍÆ® Á¦°Å - by monkman (2008.06.17) TRzButtonEdit *rzbtneditCalc = NULL; rzbtneditCalc = dynamic_cast(Sender); if (rzbtneditCalc) { TCalcForm *CalcForm = new TCalcForm(this); CalcForm->InitForm(rzbtneditCalc); CalcForm->ShowModal(); delete CalcForm; CalcForm = NULL; } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::EditorSelectAll(TObject *Sender) { SetFocusAndSelectAll(Sender); } //--------------------------------------------------------------------------- // MainMenu Selection ±â´É Ãß°¡ // //--------------------------------------------------------------------------- // Button Group Component¿¡¼­ ¾ÖÃÊ¿¡ ItemµéÀ» ³Ö¾î³ù´Ù¸é ButtonClick À̺¥Æ®°¡ ¾È¸Ô°í // °¢ Itemº° ClickÀ̺¥Æ®¸¸ ¸Ô´Â´Ù. ±×·¡¼­ °³º°·Î MenuMenuGroupItemClick( INDEX )¶ó´Â ÇÔ¼ö¸¦ // È£ÃâÇØÁØ´Ù. void __fastcall TEnvironmentForm::MainMenuGroupItems0Click(TObject *Sender) { MenuMenuGroupItemClick(0); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems1Click(TObject *Sender) { MenuMenuGroupItemClick(1); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems2Click(TObject *Sender) { MenuMenuGroupItemClick(2); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems3Click(TObject *Sender) { MenuMenuGroupItemClick(3); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems4Click(TObject *Sender) { MenuMenuGroupItemClick(4); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems5Click(TObject *Sender) { MenuMenuGroupItemClick(5); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems6Click(TObject *Sender) { MenuMenuGroupItemClick(6); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems7Click(TObject *Sender) { MenuMenuGroupItemClick(7); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems8Click(TObject *Sender) { MenuMenuGroupItemClick(8); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems9Click(TObject *Sender) { MenuMenuGroupItemClick(9); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems10Click(TObject *Sender) { MenuMenuGroupItemClick(10); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems11Click(TObject *Sender) { MenuMenuGroupItemClick(11); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems12Click(TObject *Sender) { MenuMenuGroupItemClick(12); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems13Click(TObject *Sender) { MenuMenuGroupItemClick(13); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems14Click(TObject *Sender) { MenuMenuGroupItemClick(14); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems15Click(TObject *Sender) { MenuMenuGroupItemClick(15); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems16Click(TObject *Sender) { MenuMenuGroupItemClick(16); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems17Click(TObject *Sender) { MenuMenuGroupItemClick(17); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems18Click(TObject *Sender) { MenuMenuGroupItemClick(18); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems19Click(TObject *Sender) { MenuMenuGroupItemClick(19); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems20Click(TObject *Sender) { MenuMenuGroupItemClick(20); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems21Click(TObject *Sender) { MenuMenuGroupItemClick(21); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems22Click(TObject *Sender) { MenuMenuGroupItemClick(22); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems23Click(TObject *Sender) { MenuMenuGroupItemClick(23); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems24Click(TObject *Sender) { MenuMenuGroupItemClick(24); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems25Click(TObject *Sender) { MenuMenuGroupItemClick(25); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems26Click(TObject *Sender) { MenuMenuGroupItemClick(26); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems27Click(TObject *Sender) { MenuMenuGroupItemClick(27); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems28Click(TObject *Sender) { MenuMenuGroupItemClick(28); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems29Click(TObject *Sender) { MenuMenuGroupItemClick(29); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems30Click(TObject *Sender) { MenuMenuGroupItemClick(30); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuGroupItems31Click(TObject *Sender) { MenuMenuGroupItemClick(31); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MenuMenuGroupItemClick(int itemNumber) { // ³ªÁß¿¡ Insert³ª DeleteÇÒ¶§ ¹öưÀÇ ImageIndex°¡ MENU_COUNTº¸´Ù Å«Áö ÀÛÀºÁö·Î ±¸ºÐÇÑ´Ù. // MENU_COUNTº¸´Ù ÀÛ´Ù -> ¼±ÅõÇÁö ¾Ê¾Ò´Ù ( ¾ÆÀÌÄÜ À̹ÌÁö°¡ ¿ø·¡ ¸Þ´º ¾ÆÀÌÄÜ ) // MENU_COUNTº¸´Ù Å©´Ù -> ¼±ÅõǾú´Ù. ( ¾ÆÀÌÄÜ À̹ÌÁö°¡ ¼±ÅÃµÇ¾î ±×¸²ÀÚ »ý±ä ¸Þ´º ¾ÆÀÌÄÜ ) // ÀÌ·¸°Ô ³ª´« ÀÌÀ¯´Â ButtonGroup Component Ư¡»ó ¹öư °³°³º° ±¸ºÐÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÎ ImageIndex¹Û¿¡ ¾ø±â ¶§¹® for (int i = 0; i < MainMenuGroup->Items->Count; i++) { if (MainMenuGroup->Items->Items[i]->ImageIndex == itemNumber) { MainMenuGroup->Items->Items[i]->ImageIndex = itemNumber + MENU_COUNT; // ¿ø·¡ À̹ÌÁö ¶ó¸é ¼±ÅÃµÈ ±×¸²À¸·Î ¹Ù²ãÁØ´Ù. break; } else if (MainMenuGroup->Items->Items[i]->ImageIndex == itemNumber + MENU_COUNT) { MainMenuGroup->Items->Items[i]->ImageIndex = itemNumber; // ¼±ÅÃµÈ ±×¸²À̶ó¸é ¿ø·¡ À̹ÌÁö·Î ¹Ù²ãÁØ´Ù. break; } } // ±âÁ¸ ÄÚµå´Â ´ÙÁß ¼±Åà ÈÄ È­»ìÇ¥¸¦ ´­·¯ ³Ñ±â´Â °ÍÀ̾úÀ¸³ª Ŭ¸¯°ú µ¿½Ã¿¡ Delete µÇ°Ô Çϱâ À§ÇØ // ¿ì¼± ¾Æ·¡ ÇÑÁÙÀ» ³Ö¾ú´Ù. ¾Æ·¡ ÇÑÁÙÀ» ÁÖ¼®Ã³¸®ÇÏ¸é ´ÙÁß¼±Åà ±â´ÉÀ¸·Î °¡°Ô µÈ´Ù. MainMenuDeleteClick(this); } //--------------------------------------------------------------------------- // ¹Ì¸® ³Ö¾îµÐ ItemÀÌ ¾Æ´Ï¶ó Áß°£¿¡ Inser, DeleteÇϸ鼭 µé¾î°£ ItemÀ̶ó¸é ¾Æ·¡ À̺¥Æ®°¡ ¸Ô´Â´Ù. // À§ÀÇ MenuMenuGroupItemClick°ú µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÔ. void __fastcall TEnvironmentForm::MainMenuGroupButtonClicked(TObject *Sender, int Index) { if (MainMenuGroup->Items->Items[Index]->ImageIndex < MENU_COUNT) { MainMenuGroup->Items->Items[Index]->ImageIndex = MainMenuGroup->Items->Items[Index]->ImageIndex + MENU_COUNT; } else if (MainMenuGroup->Items->Items[Index]->ImageIndex > MENU_COUNT - 1) { MainMenuGroup->Items->Items[Index]->ImageIndex = MainMenuGroup->Items->Items[Index]->ImageIndex - MENU_COUNT; } // ±âÁ¸ ÄÚµå´Â ´ÙÁß ¼±Åà ÈÄ È­»ìÇ¥¸¦ ´­·¯ ³Ñ±â´Â °ÍÀ̾úÀ¸³ª Ŭ¸¯°ú µ¿½Ã¿¡ Delete µÇ°Ô Çϱâ À§ÇØ // ¿ì¼± ¾Æ·¡ ÇÑÁÙÀ» ³Ö¾ú´Ù. ¾Æ·¡ ÇÑÁÙÀ» ÁÖ¼®Ã³¸®ÇÏ¸é ´ÙÁß¼±Åà ±â´ÉÀ¸·Î °¡°Ô µÈ´Ù. MainMenuDeleteClick(this); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuDeleteClick(TObject *Sender) { // ImageIndex°¡ 30º¸´Ù Å©´Ù¸é ¼±ÅÃµÈ ¸Þ´ºµéÀ̹ǷΠÀ̵éÀ» MainMenuList¿¡ ³Ö¾îÁÖ°í for (int i = 0; i < MainMenuGroup->Items->Count ; i++) { if (MainMenuGroup->Items->Items[i]->ImageIndex > MENU_COUNT - 1) { MainMenuList.push_back(MainMenuGroup->Items->Items[i]->ImageIndex - MENU_COUNT); } } // MainMenuList¿¡ ÀÖ´Â ¾ÆÀÌÅÛµéÀ» ´Ù½Ã bgMainMenu¿¡ ³Ö¾îÁØ´Ù. std::list::const_iterator it = MainMenuList.begin(); int existNumber = bgMainMenu->Items->Count; for (int i =0; i < MainMenuList.size(); i++) { bgMainMenu->Items->Insert(existNumber + i); bgMainMenu->Items->Items[existNumber + i]->Caption = StringTable[(*it) + 22]; bgMainMenu->Items->Items[existNumber + i]->ImageIndex = (*it++); } // ±×¸®°í ÀÌ ¾ÆÀÌÅÛµéÀº ÀÌÁ¦ MainMenuGroup¿¡¼­ »©ÁØ´Ù. int totalCount = MainMenuGroup->Items->Count; for (int i = totalCount - 1; i >= 0 ; i--) { if (MainMenuGroup->Items->Items[i]->ImageIndex > MENU_COUNT - 1) { MainMenuGroup->Items->Delete(i); } } MainMenuList.clear(); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::bgMainMenuButtonClicked(TObject *Sender, int Index) { // bgMainMenu¿¡¼­ ¸Þ´º¸¦ ¼±ÅÃÇßÀ» ¶§ MainMenuGroup°ú ¸¶Âù°¡Áö·Î // ¼±ÅÃµÈ ¾ÆÀÌÅÛµéÀº MENU_COUNTº¸´Ù Å« ImageIndex¸¦ °®°Ô // ¼±ÅõÇÁö ¾ÊÀº ¾ÆÀÌÅÛµéÀº MENU_COUNTÀÌÇÏÀÇ ImageIndex¸¦ °®°Ô // ¼±ÅÃµÈ ¸Þ´º ¾ÆÀÌÅÛ Image Index = ¼±ÅõÇÁö ¾ÊÀº ¸Þ´º ¾ÆÀÌÅÛ Image Index + MENU_COUNT // ! ¸¸¾à ¸Þ´ºÀÇ ÃÑ °¹¼ö°¡ MENU_COUNTº¸´Ù Å©´Ù¸é ÀÌ ¼ýÀڵ鵵 ¿ª½Ã ´Ã¾î³ª¾ß ÇÑ´Ù. if (bgMainMenu->Items->Items[Index]->ImageIndex < MENU_COUNT) { bgMainMenu->Items->Items[Index]->ImageIndex = bgMainMenu->Items->Items[Index]->ImageIndex + MENU_COUNT; } else if (bgMainMenu->Items->Items[Index]->ImageIndex > MENU_COUNT - 1) { bgMainMenu->Items->Items[Index]->ImageIndex = bgMainMenu->Items->Items[Index]->ImageIndex - MENU_COUNT; } // ±âÁ¸ ÄÚµå´Â ´ÙÁß ¼±Åà ÈÄ È­»ìÇ¥¸¦ ´­·¯ ³Ñ±â´Â °ÍÀ̾úÀ¸³ª Ŭ¸¯°ú µ¿½Ã¿¡ Delete µÇ°Ô Çϱâ À§ÇØ // ¿ì¼± ¾Æ·¡ ÇÑÁÙÀ» ³Ö¾ú´Ù. ¾Æ·¡ ÇÑÁÙÀ» ÁÖ¼®Ã³¸®ÇÏ¸é ´ÙÁß¼±Åà ±â´ÉÀ¸·Î °¡°Ô µÈ´Ù. MainMenuInsetClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::MainMenuInsetClick(TObject *Sender) { // bgMainMenu¿¡¼­ MENU_COUNTº¸´Ù Å« ¾ÆÀÌÅÛµéÀ» MainMenuList¿¡ ³Ö¾îµÐ´Ù. for (int i = 0; i < bgMainMenu->Items->Count ; i++) { if (bgMainMenu->Items->Items[i]->ImageIndex > MENU_COUNT - 1) { MainMenuList.push_back(bgMainMenu->Items->Items[i]->ImageIndex - MENU_COUNT); } } // MainMenuList¿¡ ´ã±ä ¾ÆÀÌÅÛµéÀ» MainMenuGroup¿¡ µÚ¿¡¼­ ºÎÅÍ ³Ö¾îÁØ´Ù. std::list::const_iterator it = MainMenuList.begin(); int existNumber = MainMenuGroup->Items->Count; for (int i =0; i < MainMenuList.size(); i++) { MainMenuGroup->Items->Insert(existNumber + i); MainMenuGroup->Items->Items[existNumber + i]->Hint = StringTable[(*it) + 22]; MainMenuGroup->Items->Items[existNumber + i]->ImageIndex = (*it++); } // ÀÌ ¾ÆÀÌÅÛµéÀ» bgMainMenu¿¡¼­ ´Ù½Ã »©ÁØ´Ù. int totalCount = bgMainMenu->Items->Count; for (int i = totalCount - 1; i >= 0 ; i--) { if (bgMainMenu->Items->Items[i]->ImageIndex > MENU_COUNT - 1) { bgMainMenu->Items->Delete(i); } } MainMenuList.clear(); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::InitialMainMenuSelect() { // ȯ°æ¼³Á¤ âÀ» Ä×À» ¶§ ÇöÀç ¸ÞÀθ޴º ¾ÆÀÌÅÛºÐÆ÷·Î ¾÷µ¥ÀÌÆ® ½ÃÄÑÁÖ´Â ÇÔ¼öÀÌ´Ù. // ÇöÀç ¸ÞÀθ޴º ¾ÆÀÌÅÛµéÀº status.ini¿¡¼­ ¹Þ¾Æ¿À¹Ç·Î À̸¦ ÂüÁ¶ÇÏ¿© ¼³Á¤ÇØÁØ´Ù. TIniFile *IniFile = new TIniFile(AppDataItem+"\\status.ini"); String SelectedMenu; int MenuNumber; Char *MenuOrderChar; int cnt = 1; int SubCnt = 0; bool AddMenu = true; std::list MainMenuList; if (IniFile) { MenuNumber = IniFile->ReadInteger("MenuSelect", "Number", 0); SelectedMenu = IniFile->ReadString("MenuSelect", "Order", ""); MenuOrderChar = SelectedMenu.c_str(); // status.ini¿¡¼­ ¸Þ´ºÀÇ °¹¼ö¿Í ImageIndex ¼ø¼­°¡ ´ã±ä StringÀ» ¹Þ¾Æ¿Â´Ù. // ±× StringÀ» space¿Í ¸Ç ¸¶Áö¸·À϶§·Î ±¸ºÐÇÏ¿© substring½ÃÄÑ ´Ù½Ã »õ·Î¿î stringÀ¸·Î ÀÚ¸¥ ÈÄ // À̸¦ StrToIntÇÔ¼ö¸¦ ÅëÇØ integer °ªÀ¸·Î ÀúÀåÇØµÎ°í À̸¦ MainMenuList¿¡ ³Ö¾îµÐ´Ù. for (int i = 0; i < SelectedMenu.Length() ; i++) { if (MenuOrderChar[i] == ' ' || i == SelectedMenu.Length() - 1) { String Temp; if (i == SelectedMenu.Length() - 1) SubCnt++; Temp += SelectedMenu.SubString(cnt, SubCnt); MainMenuList.push_back(StrToInt(Temp)); cnt = i + 2; SubCnt = 0; } else SubCnt++; } // MainMenuList¿¡ ÀÖ´Â °ªµé·Î MainMenuGroupÀÇ ¼ø¼­¸¦ ¹Ù²ãÁØ´Ù. ( MainMenuGroup¿¡´Â ÀÌ¹Ì ¿ø·¡ 31°³ ¾ÆÀÌÅÛ ¹è¿­´ë·Î // ¼ø¼­¸¦ °¡Áö°í ÀÖ´Ù.) MainMenuGroup¿¡ ÀÌ¹Ì Á¸ÀçÇÏ´Â ¾ÆÀÌÅÛÀ̶ó¸é ±× ¾ÆÀÌÅÛÀ» ¾ÕÀ¸·Î ¿Å°ÜÁØ´Ù. std::list::iterator it; int i; int bgCnt = 0; for (it = MainMenuList.begin(), i = 0; it != MainMenuList.end() ; it++, i++) { for (int j = 0; j < MainMenuGroup->Items->Count; j++) { if (MainMenuGroup->Items->Items[j]->ImageIndex == (*it)) { MainMenuGroup->Items->Items[j]->Index = i; MainMenuGroup->Items->Items[j]->Hint = StringTable[(*it) + 22]; } } } // ³ª¸ÓÁö ¾ÆÀÌÅÛµéÀ» »©ÁØ´Ù. int visibledMenuCount = MainMenuList.size(); for (int i = visibledMenuCount; i < MENU_COUNT ; i++) { MainMenuGroup->Items->Delete(visibledMenuCount); } // ³ª¸ÓÁö ¾ÆÀÌÅÛµéÀº bgMainMenu¿¡ ³Ö¾îÁØ´Ù. for (int i = 0; i < MENU_COUNT; i++) { it = MainMenuList.begin(); AddMenu = true; for (int cnt = 0; cnt < visibledMenuCount; cnt++) { if (*(it++) == i) AddMenu = false; } if (AddMenu) { bgMainMenu->Items->Insert(bgCnt); bgMainMenu->Items->Items[bgCnt]->ImageIndex = i; bgMainMenu->Items->Items[bgCnt]->Caption = StringTable[i + 22]; bgCnt++; } } delete IniFile; IniFile = NULL; } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::InitialMainMenuSelect_original() { // // InitialMainMenuSelect ÇÔ¼ö¿Í ºñ½ÁÇÏ´Ù. // // ´Ù¸¸, ¿ø·¡´ë·Î ¹Ù²Ù´Â °ÍÀ̱⠶§¹®¿¡ bgMainMenu³ª MainMenuGroupÀÇ ¾ÆÀÌÅÛµéÀ» ¸ðµÎ Áö¿öÁÖ°í // // ´Ü¼øÈ÷ MainMenuGroup¿¡ ³Ö¾îÁֱ⸸ ÇÏ¸é µÈ´Ù. // TIniFile *IniFile = new TIniFile(AppDataItem+"\\status.ini"); String SelectedMenu; int MenuNumber; Char *MenuOrderChar; int cnt = 1; int SubCnt = 0; std::list MainMenuList; // if (IniFile) { MenuNumber = DefaultMenuNumber;//IniFile->ReadInteger("MenuSelect", "Number", 0); SelectedMenu = DefaultMenuOrder;//IniFile->ReadString("MenuSelect", "Order", ""); MenuOrderChar = SelectedMenu.c_str(); for (int i = 0; i < SelectedMenu.Length() ; i++) { if (MenuOrderChar[i] == ' ' || i == SelectedMenu.Length() - 1) { String Temp; if (i == SelectedMenu.Length() - 1) SubCnt++; Temp += SelectedMenu.SubString(cnt, SubCnt); MainMenuList.push_back(StrToInt(Temp)); cnt = i + 2; SubCnt = 0; } else SubCnt++; } int MainMenuGroupCnt = MainMenuGroup->Items->Count; for (int i = 0; i < MainMenuGroupCnt; i++) { MainMenuGroup->Items->Delete(0); } MainMenuGroupCnt = bgMainMenu->Items->Count; for (int i = 0; i < MainMenuGroupCnt; i++) { bgMainMenu->Items->Delete(0); } std::list::iterator it; int i; int bgCnt = 0; for (it = MainMenuList.begin(), i = 0; it != MainMenuList.end() ; it++, i++) { MainMenuGroup->Items->Insert(i); MainMenuGroup->Items->Items[i]->ImageIndex = (*it); MainMenuGroup->Items->Items[i]->Hint = StringTable[(*it) + 22]; } // delete IniFile; // IniFile = NULL; // } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::bgMainMenuBeforeDrawButton(TObject *Sender, int Index, TCanvas *Canvas, TRect &Rect, TButtonDrawState State) { if (bgMainMenu->Items->Items[Index]->ImageIndex < MENU_COUNT) { Canvas->Brush->Color = clBtnFace; } else if (bgMainMenu->Items->Items[Index]->ImageIndex > MENU_COUNT - 1) { Canvas->Brush->Color = clBtnShadow; } } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::rzbitbtnGoBackDefaultClick(TObject *Sender) { // TIniFile *IniFile = new TIniFile(AppDataItem+"\\status.ini"); // // // ¿ø·¡´ë·Î ¹öưÀ» ´­·¶À» ¶§ status.ini¿¡ ¿ø·¡ ¼ø¼­·Î Áý¾î³Ö¾îÁØ´Ù. // if (IniFile) { // IniFile->WriteInteger("MenuSelect", "Number", 32); // IniFile->WriteString("MenuSelect", "Order", SelectedMenuOrder); // InitialMainMenuSelect_original(); // delete IniFile; // } InitialMainMenuSelect_original(); } //--------------------------------------------------------------------------- void __fastcall TEnvironmentForm::rzbitbtnCombiEditClick(TObject *Sender) { #ifdef WORKSHEET CombiItemEditForm = new TCombiItemEditForm(this); CombiItemEditForm->ShowModal(); if (CombiItemEditForm) delete CombiItemEditForm; CombiItemEditForm = NULL; #endif } //---------------------------------------------------------------------------