//--------------------------------------------------------------------------- #include #pragma hdrstop #include "CombiResult.h" #include "Combination.h" #include "StyleView.h" #include "VIllustForm.h" #include "Math.h" #include "define.h" #ifdef WORKSHEET #include "WorkSheet_F.h" #endif //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "RzPanel" #pragma link "RzShellCtrls" #pragma link "RzSplit" #pragma link "RzTreeVw" #pragma link "RzButton" #pragma link "RzCmboBx" #pragma link "RzRadChk" #pragma resource "*.dfm" //--------------------------------------------------------------------------- #define CENTER_X 150 // ±âÁØÁ¡ÀÌ µé¾î°¥ Á¡ÀÇ ÁÂÇ¥ #define CENTER_Y 50 #define MARGIN_X 50 // ¿©¹é ÁÂÇ¥ #define MARGIN_Y 50 #define IDS_UP StringTable[0] #define IDS_DOWN StringTable[1] #define IDS_CHECK StringTable[2] #define IDS_FRONT StringTable[3] #define IDS_BACK StringTable[4] #define IDS_FRONTBACK1 StringTable[5] #define IDS_FRONTBACK2 StringTable[6] #define IDS_UPDOWN1 StringTable[7] #define IDS_UPDOWN2 StringTable[8] #define IDS_WHOLE StringTable[9] #define IDS_GOBACK StringTable[10] #define IDS_OPEN StringTable[11] #define IDS_MERGE StringTable[12] #define IDS_CHECKLIST StringTable[13] #define IDS_DELETE StringTable[14] #define IDS_COMBIRESULT StringTable[15] #define IDS_CHECKSAVE StringTable[16] #define IDS_COMBIINVALID StringTable[17] #define IDS_SUBMATERIAL StringTable[18] #define IDS_WORKSHEET StringTable[19] #define IDS_DELETE StringTable[20] #define IDS_MESSAGE0 StringTable[21]//±âº» Æú´õ°¡ #define IDS_MESSAGE1 StringTable[22]//·Î º¯°æµÇ¾ú½À´Ï´Ù. #define IDS_MESSAGE2 StringTable[23]//ÀÛ¾÷Áö½Ã¼­ ¼¿ ¼³Á¤ÀÌ µÇ¾î ÀÖÁö ¾ÊÀº ¾ÆÀÌÅÛÀÔ´Ï´Ù. #define IDS_VIEW StringTable[24]//º¸±â //--------------------------------------------------------------------------- TResultForm *ResultForm; //--------------------------------------------------------------------------- #define SET_RECT \ \ data->First.x = MaxInt; data->First.y = MaxInt; \ data->Second.x = 0; data->Second.y = 0; \ for (int i = 0; i < data->nCount*3+1; i++) { \ if (data->First.x > data->pList[i].x) data->First.x = data->pList[i].x; \ if (data->First.y > data->pList[i].y) data->First.y = data->pList[i].y; \ if (data->Second.x < data->pList[i].x) data->Second.x = data->pList[i].x; \ if (data->Second.y < data->pList[i].y) data->Second.y = data->pList[i].y; \ } \ //--------------------------------------------------------------------------- __fastcall TResultForm::TResultForm(TComponent* Owner) : TForm(Owner) { StringTable.Create(DirectoryItem, Language, "CombiResult"); SetSmallFont(Font); rbUp->Caption = IDS_UP; rbDown->Caption = IDS_DOWN; rbCheck->Caption = IDS_CHECK; TabFront->Caption = IDS_FRONT; TabBack->Caption = IDS_BACK; combobxView->AddItem(IDS_FRONTBACK1, NULL); combobxView->AddItem(IDS_FRONTBACK2, NULL); combobxView->AddItem(IDS_UPDOWN1, NULL); combobxView->AddItem(IDS_UPDOWN2, NULL); combobxView->AddItem(IDS_WHOLE, NULL); btCheckSave->Caption = IDS_CHECKSAVE; spdbtnBack->Hint = IDS_GOBACK; PopupOpen->Caption = IDS_OPEN; PopupMerge->Caption = IDS_MERGE; PopupCheck->Caption = IDS_CHECKLIST; PopupOpen2->Caption = IDS_OPEN; PopupMerge2->Caption = IDS_MERGE; PopupDelete2->Caption = IDS_DELETE; Caption = IDS_COMBIRESULT; lbMaterial->Caption = IDS_SUBMATERIAL; spdbtnEland->Hint = IDS_WORKSHEET; spdbtnDelete->Hint = IDS_DELETE; spdbtnView->Hint = IDS_VIEW; FullFileList = new TStringList; SilFileList = new TStringList; SleFileList = new TStringList; ColFileList = new TStringList; PantsFileList = new TStringList; BeltFileList = new TStringList; FullFrontList = new TList; SilFrontList = new TList; SleFrontList = new TList; ColFrontList = new TList; PantsFrontList = new TList; BeltFrontList = new TList; FullBackList = new TList; SilBackList = new TList; SleBackList = new TList; ColBackList = new TList; PantsBackList = new TList; BeltBackList = new TList; FullHeaderList = new TList; SilHeaderList = new TList; SleHeaderList = new TList; ColHeaderList = new TList; PantsHeaderList = new TList; BeltHeaderList = new TList; UpResultFrontList = new TList; UpResultBackList = new TList; DownResultFrontList = new TList; DownResultBackList = new TList; CheckResultFrontList = new TList; CheckResultBackList = new TList; UpResultHeaderList = new TList; DownResultHeaderList = new TList; CheckResultHeaderList = new TList; UpImageList = new TList; DownImageList = new TList; CheckImageList = new TList; CheckCount = 0; SelectedUp = 0; SelectedDown = 0; TabControl1->TabIndex = 0; // »çÁøÀ» ÅëÇÑ ½ºÅ¸ÀÏ Á¶ÇÕ // TVecData¸¦ ´ã±âÀ§ÇÑ TList // ÆÐÅÏ¿ë (»óÀÇ) PatUpWhole = new TList; PatUpSil = new TList; PatUpSle = new TList; PatUpCol = new TList; // ÆÐÅÏ¿ë (ÇÏÀÇ) PatDnWhole = new TList; PatDnSil = new TList; PatDnBelt = new TList; SCF = new TFileCache; // ´õºí¹öÆÛ¸µÀ» ÇØÁÖ¾î¾ß À§¿¡ ¿Ã¶ó°¡ÀÖ´Â PaintBox°¡ ±ôºý°Å¸®Áö ¾Ê´Â´Ù - by monkman (2011.02.21) // http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=59538 Panel2->DoubleBuffered = true; Panel3->DoubleBuffered = true; #ifdef WORKSHEET // ------- ºÎÀÚÀç °ü·Ã ------------ // È®ÀåÀü Å©±â Á¤º¸ ¹é¾÷ nOriginWidth = Width - rzpnlMaterial->Width; MaterialHeader = NULL; MaterialFileList = new TStringList; MaterialHeaderList = new TList; MaterialImageList = new TList; DragMaterialCol = -1; DragMaterialRow = -1; CellImageList = new TList; memset(Cell_Order, 0, sizeof(BYTE)*CELL_COUNT); memset(Cell_Visible, 0, sizeof(bool)*CELL_COUNT); UpperCombinationList = new TList; LowerCombinationList = new TList; CheckCombinationList = new TList; #else // ÀÛ¾÷Áö½Ã¼­¿¡¼­ »ç¿ëµÇÁö ¾Ê´Â ºÎºÐÀ̶ó ´Ý¾ÆµÐ´Ù - by monkman (2011.01.30) Width = Width - rzpnlMaterial->Width; rzsplitSplit->CloseHotSpot(); rzsplitSplit->HotSpotVisible = false; #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::InitForm() { // ÇØ»óµµ¿¡ µû¸¥ Æû Å©±â ÃʱâÈ­ - by monkman (2004.05.02) if (Screen->Width >= 1280 && Screen->Height >= 1024) BorderStyle = bsSingle; else BorderStyle = bsSizeable; Left = (Screen->Width - Width); bUpper = CombiForm->combobxUpperLower->ItemIndex == 0; ProgressBar1->Visible = true; ProgressBar1->Position = 0; StringGrid1->TopRow = 0; StringGrid1->Col = 0; StringGrid1->Row = 0; TabControl1->TabIndex = 0; PageFront->ActivePageIndex = 0; #ifdef WORKSHEET // Style.ini ÆÄÀÏ¿¡¼­ ¾ò¾î¿Â STYPath °ª - by monkman (2004.08.04) TIniFile *IniFile = NULL; IniFile = new TIniFile(AppDataItem+"\\Style.ini"); if (IniFile) { strMaterialRootPath = IniFile->ReadString("DataTransForm_Material", "RootPath", strMaterialRootPath); if (!DirectoryExists(strMaterialRootPath)) { if (DirectoryExists(DirectoryBin+"\\Material")) strMaterialRootPath = DirectoryBin + "\\Material"; else strMaterialRootPath = DirectoryBin; IniFile->WriteString("DataTransForm_Material", "RootPath", strMaterialRootPath); } delete IniFile; } IniFile = NULL; rzshelltreeMaterialExplorer->BaseFolder->PathName = strMaterialRootPath; lbMaterialDirectory->Caption = strMaterialRootPath; spdbtnEland->Visible = true; spdbtnDelete->Visible = true; strgrdCell->Visible = true; strgrdCell->Cells[0][0] = " Blank"; strgrdCell->Cells[1][0] = " Blank"; strgrdCell->Cells[2][0] = " Blank"; strgrdCell->Cells[3][0] = " Blank"; strgrdCell->Cells[4][0] = " Blank"; strgrdCell->Cells[5][0] = " Blank"; strgrdCell->Cells[6][0] = " Blank"; #endif // CombiForm¿¡¼­ ¼±ÅÃµÈ °ÍµéÀÌ ¾Æ¹« º¯È­ ¾øÀÌ ³Ñ¾î¿Ô´Ù¸é ´Ù½Ã ÃʱâÈ­ÇÏÁö ¾Ê´Â´Ù - by monkman (2004.05.31) if (CompareCheckedStyles() && !CombiForm->bReCombination) return; // CombiForm¿¡ ¼±ÅÃµÈ °ÍµéÀ» º¹»çÇÑ´Ù - by monkman (2004.05.31) CopyCombiFormCheckedStyles(); ClearData(); if (bUpper) { rbUp->Checked = true; ClearUpData(); StringGrid1->Repaint(); PaintBox1->Canvas->Brush->Color = clWhite; PaintBox1->Canvas->FillRect(Rect(0,0,PaintBox1->Width,PaintBox1->Height)); PaintBox2->Canvas->Brush->Color = clWhite; PaintBox2->Canvas->FillRect(Rect(0,0,PaintBox2->Width,PaintBox2->Height)); InitUpperData(); MakeUpperData(); }else { rbDown->Checked = true; ClearDownData(); StringGrid1->Repaint(); PaintBox1->Canvas->Brush->Color = clWhite; PaintBox1->Canvas->FillRect(Rect(0,0,PaintBox1->Width,PaintBox1->Height)); PaintBox2->Canvas->Brush->Color = clWhite; PaintBox2->Canvas->FillRect(Rect(0,0,PaintBox2->Width,PaintBox2->Height)); InitLowerData(); MakeLowerData(); } MakeTagData(); PaintBox1->Repaint(); ProgressBar1->Position = 100; ProgressBar1->Visible = false; StringGrid1->Repaint(); #ifdef WORKSHEET CombiIndex = 0; // ù ¹øÂ° Á¶ÇÕ°á°ú¹°ÀÇ Çì´õ¸¦ ÀÌ¿ëÇÏ¿© ºÎÀÚÀç °Ë»ö¿¡ ÀÌ¿ëÇÑ´Ù - by monkman (2011.01.25) if (rbUp->Checked == true && 0 < UpResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)UpResultHeaderList->Items[0]; } else if (rbDown->Checked == true && 0 < DownResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)DownResultHeaderList->Items[0]; } else if (rbCheck->Checked == true && 0 < CheckResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)CheckResultHeaderList->Items[0]; } SetMaterialComboBox(); ApplyCombiDataToMaterial(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::ExitForm() { // } //--------------------------------------------------------------------------- void __fastcall TResultForm::SetFont() { SetSmallFont(Font); } //--------------------------------------------------------------------------- void __fastcall TResultForm::ClearData() { TVecData *data; PSTYLEDATAFILEHEADER pheader; TFileInfor *fi; #ifdef WORKSHEET TCombinationData *CombiData = NULL; #endif FullFileList->Clear(); SilFileList->Clear(); SleFileList->Clear(); ColFileList->Clear(); BeltFileList->Clear(); for (int i = 0; i < FullFrontList->Count; i++) { data = (TVecData *)FullFrontList->Items[i]; if (data) delete data; data = NULL; } FullFrontList->Clear(); for (int i = 0; i < SilFrontList->Count; i++) { data = (TVecData *)SilFrontList->Items[i]; if (data) delete data; data = NULL; } SilFrontList->Clear(); for (int i = 0; i < SleFrontList->Count; i++) { data = (TVecData *)SleFrontList->Items[i]; if (data) delete data; data = NULL; } SleFrontList->Clear(); for (int i = 0; i < ColFrontList->Count; i++) { data = (TVecData *)ColFrontList->Items[i]; if (data) delete data; data = NULL; } ColFrontList->Clear(); for (int i = 0; i < PantsFrontList->Count; i++) { data = (TVecData *)PantsFrontList->Items[i]; if (data) delete data; data = NULL; } PantsFrontList->Clear(); for (int i = 0; i < BeltFrontList->Count; i++) { data = (TVecData *)BeltFrontList->Items[i]; if (data) delete data; data = NULL; } BeltFrontList->Clear(); for (int i = 0; i < FullBackList->Count; i++) { data = (TVecData *)FullBackList->Items[i]; if (data) delete data; data = NULL; } FullBackList->Clear(); for (int i = 0; i < SilBackList->Count; i++) { data = (TVecData *)SilBackList->Items[i]; if (data) delete data; data = NULL; } SilBackList->Clear(); for (int i = 0; i < SleBackList->Count; i++) { data = (TVecData *)SleBackList->Items[i]; if (data) delete data; data = NULL; } SleBackList->Clear(); for (int i = 0; i < ColBackList->Count; i++) { data = (TVecData *)ColBackList->Items[i]; if (data) delete data; data = NULL; } ColBackList->Clear(); for (int i = 0; i < PantsBackList->Count; i++) { data = (TVecData *)PantsBackList->Items[i]; if (data) delete data; data = NULL; } PantsBackList->Clear(); for (int i = 0; i < BeltBackList->Count; i++) { data = (TVecData *)BeltBackList->Items[i]; if (data) delete data; data = NULL; } BeltBackList->Clear(); for (int i = 0; i < FullHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)FullHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } FullHeaderList->Clear(); for (int i = 0; i < SilHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)SilHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } SilHeaderList->Clear(); for (int i = 0; i < SleHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)SleHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } SleHeaderList->Clear(); for (int i = 0; i < ColHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)ColHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } ColHeaderList->Clear(); for (int i = 0; i < PantsHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)PantsHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } PantsHeaderList->Clear(); for (int i = 0; i < BeltHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)BeltHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } BeltHeaderList->Clear(); } //--------------------------------------------------------------------------- void __fastcall TResultForm::ClearUpData() { TVecData *data; TFileInfor *fi; PSTYLEDATAFILEHEADER pheader; #ifdef WORKSHEET TCombinationData *CombiData = NULL; #endif for (int i = 0; i < UpResultFrontList->Count; i++) { data = (TVecData *)UpResultFrontList->Items[i]; if (data) delete data; data = NULL; } UpResultFrontList->Clear(); for (int i = 0; i < UpResultBackList->Count; i++) { data = (TVecData *)UpResultBackList->Items[i]; if (data) delete data; data = NULL; } UpResultBackList->Clear(); for (int i = 0; i < UpImageList->Count; i++) { fi = (TFileInfor *) UpImageList->Items[i]; if (fi) { if (fi->tBitmap) delete fi->tBitmap; fi->tBitmap = NULL; delete fi; } fi = NULL; } UpImageList->Clear(); for (int i = 0; i < UpResultHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } UpResultHeaderList->Clear(); #ifdef WORKSHEET // »óÀǸ¸ Áö¿ìµµ·Ï ¼öÁ¤ - by monkman (2010.12.22) for (int i = 0; i < UpperCombinationList->Count; i++) { CombiData = (TCombinationData *)UpperCombinationList->Items[i]; if (CombiData) delete CombiData; CombiData = NULL; } UpperCombinationList->Clear(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::ClearDownData() { TVecData *data; TFileInfor *fi; PSTYLEDATAFILEHEADER pheader; #ifdef WORKSHEET TCombinationData *CombiData = NULL; #endif for (int i = 0; i < DownResultFrontList->Count; i++) { data = (TVecData *)DownResultFrontList->Items[i]; if (data) delete data; data = NULL; } DownResultFrontList->Clear(); for (int i = 0; i < DownResultBackList->Count; i++) { data = (TVecData *)DownResultBackList->Items[i]; if (data) delete data; data = NULL; } DownResultBackList->Clear(); for (int i = 0; i < DownImageList->Count; i++) { fi = (TFileInfor *) DownImageList->Items[i]; if (fi) { if (fi->tBitmap) delete fi->tBitmap; fi->tBitmap = NULL; delete fi; } fi = NULL; } DownImageList->Clear(); for (int i = 0; i < DownResultHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)DownResultHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } DownResultHeaderList->Clear(); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - ÇÏÀǸ¸ Áö¿ìµµ·Ï ¼öÁ¤ - by monkman (2010.12.22) for (int i = 0; i < LowerCombinationList->Count; i++) { CombiData = (TCombinationData *)LowerCombinationList->Items[i]; if (CombiData) delete CombiData; CombiData = NULL; } LowerCombinationList->Clear(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::ClearCheckData() { TVecData *data; TFileInfor *fi; PSTYLEDATAFILEHEADER pheader; #ifdef WORKSHEET TCombinationData *CombiData = NULL; #endif for (int i = 0; i < CheckResultFrontList->Count; i++) { data = (TVecData *)CheckResultFrontList->Items[i]; if (data) delete data; data = NULL; } CheckResultFrontList->Clear(); for (int i = 0; i < CheckResultBackList->Count; i++) { data = (TVecData *)CheckResultBackList->Items[i]; if (data) delete data; data = NULL; } CheckResultBackList->Clear(); for (int i = 0; i < CheckImageList->Count; i++) { fi = (TFileInfor *) CheckImageList->Items[i]; if (fi->tBitmap) { delete fi->tBitmap; } fi->tBitmap = NULL; CheckImageList->Remove(fi); delete fi; fi = NULL; } for (int i = 0; i < CheckResultHeaderList->Count; i++) { pheader = (PSTYLEDATAFILEHEADER)CheckResultHeaderList->Items[i]; if (pheader) delete pheader; pheader = NULL; } CheckResultHeaderList->Clear(); #ifdef WORKSHEET for (int i = 0; i < CheckCombinationList->Count; i++) { CombiData = (TCombinationData *)CheckCombinationList->Items[i]; if (CombiData) delete CombiData; CombiData = NULL; } CheckCombinationList->Clear(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::InitUpperData() { HANDLE hFile = INVALID_HANDLE_VALUE; String path, filename; STYLEDATAFILEHEADER header; PSTYLEDATAFILEHEADER pheader; TVecData *data; // DetailSilhouette[] Ãß°¡ - by monkman (2004.05.19) BYTE DetailSilhouette[MAX_SIL][MAX_DETAIL], DetailSleeve[MAX_SLE][MAX_DETAIL], DetailCollar[MAX_COL][MAX_DETAIL]; BYTE DetailPants[MAX_PANTS][MAX_DETAIL], DetailBelt[MAX_BELT][MAX_DETAIL]; int Version, silcount; BYTE *StyleData = NULL; DWORD dwPos; DWORD dwDataSize; // 50 ¹ÙÀÌÆ®¸¦ Àо 0ÀÌ ¾Æ´Ñ ºñÆ®°¡ ÀÖ´ÂÁö üũÇÑ´Ù - by monkman (2004.05.18) BYTE CompareSet = 0; // ¼±ÅÃµÈ ½ºÅ¸ÀϵéÀÇ °³¼ö¸¦ ¼¾´Ù - by monkman (2004.05.18) int SilhouetteCounter[MAX_SIL]; int SleeveCounter[MAX_SLE]; int CollarCounter[MAX_COL]; int PantsCounter[MAX_PANTS]; int BeltCounter[MAX_BELT]; // ¼±ÅÃµÈ ½ºÅ¸ÀϵéÀÇ °³¼ö¸¦ ¼¼´Â Ä«¿îÅÍÀÇ ÃʱâÈ­ - by monkman (2004.05.18) memset(SilhouetteCounter, 0, sizeof(int)*MAX_SIL); memset(SleeveCounter, 0, sizeof(int)*MAX_SLE); memset(CollarCounter, 0, sizeof(int)*MAX_COL); memset(PantsCounter, 0, sizeof(int)*MAX_PANTS); memset(BeltCounter, 0, sizeof(int)*MAX_BELT); //======= ºÎºÐ¼±Åà ½ºÅ¸ÀÏ Á¶ÇÕÀ» À§ÇÑ ÃʱâÈ­ // DetailSilhouette[] Ãß°¡ - by monkman (2004.04.01) memcpy(DetailSilhouette, CombiForm->DetailSilhouette, sizeof(BYTE)*MAX_SIL*MAX_DETAIL); memcpy(DetailSleeve, CombiForm->DetailSleeve, sizeof(BYTE)*MAX_SLE*MAX_DETAIL); memcpy(DetailCollar, CombiForm->DetailCollar, sizeof(BYTE)*MAX_COL*MAX_DETAIL); memcpy(DetailPants, CombiForm->DetailPants, sizeof(BYTE)*MAX_PANTS*MAX_DETAIL); memcpy(DetailBelt, CombiForm->DetailBelt, sizeof(BYTE)*MAX_BELT*MAX_DETAIL); // Speed-Up Upgrade ÀÌÀü - by monkman (2004.06.22) //////////////////////////////////////////////////////////////////////////////// ////====== °¢ detailº° Fileã¾Æ¼­ filelist¿¡ ÀúÀå // // path = FullDirectory + "\\*.sty"; // FullFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = FullDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_TOPFULL)) { FullFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // FullFileList->Sort(); // // result = true; // path = SilDirectory + "\\*.sty"; // SilFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = SilDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_SILHOUETTE)) { SilFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // SilFileList->Sort(); // // result = true; // path = SleDirectory + "\\*.sty"; // SleFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = SleDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_SLEEVE)) { SleFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // SleFileList->Sort(); // // result = true; // path = ColDirectory + "\\*.sty"; // ColFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = ColDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_COLLAR)) { ColFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // ColFileList->Sort(); // // BeltFileList->Clear(); // // ProgressBar1->Position = 5; //////////////////////////////////////////////////////////////////////////////// //====== °¢ detailº° Fileã¾Æ¼­ filelist¿¡ ÀúÀå path = FullDirectory; FullFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_TOPFULL, CombiForm->firstyear1, CombiForm->firstseason1, CombiForm->firstyear2, CombiForm->firstseason2, CombiForm->firstcomment); for (int i = 0; i < SCF->TopWholeStrList->Count; i++) { FullFileList->Add(SCF->TopWholeStrList->Strings[i]); } path = SilDirectory; SilFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_SILHOUETTE, CombiForm->firstyear1, CombiForm->firstseason1, CombiForm->firstyear2, CombiForm->firstseason2, CombiForm->firstcomment); for (int i = 0; i < SCF->SilStrList->Count; i++) { SilFileList->Add(SCF->SilStrList->Strings[i]); } path = SleDirectory; SleFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_SLEEVE, CombiForm->secondyear1, CombiForm->secondseason1, CombiForm->secondyear2, CombiForm->secondseason2, CombiForm->secondcomment); for (int i = 0; i < SCF->SleStrList->Count; i++) { SleFileList->Add(SCF->SleStrList->Strings[i]); } path = ColDirectory; ColFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_COLLAR, CombiForm->thirdyear1, CombiForm->thirdseason1, CombiForm->thirdyear2, CombiForm->thirdseason2, CombiForm->thirdcomment); for (int i = 0; i < SCF->ColStrList->Count; i++) { ColFileList->Add(SCF->ColStrList->Strings[i]); } ProgressBar1->Position = 5; #ifndef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ÀÇ °æ¿ì¿¡´Â FullStyleÀ» ³ÖÁö ¾Êµµ·Ï ÇÑ´Ù - by monkman (2010.12.28) ///======= ¿ä±¸Ä¡¿¡ ¸Â´Â StyleµéÀ» °ñ¶ó¼­ List¿¡ ÀúÀå ///======= FullStyle for (int i = 0; i < FullFileList->Count; i++) { filename = FullFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } if (CombiForm->CheckedSleeve.Contains(header.ESleeve) && CombiForm->CheckedCollar.Contains(header.ECollar)) { pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. FullHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(FullHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); FullFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(FullHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); FullBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } ProgressBar1->Position = 10; #endif ///======= Sleeve for (int i = 0; i < SleFileList->Count; i++) { filename = SleFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } // Version¿¡ µû¶ó ÇØ¾ßÇÒ ÀÛ¾÷ÀÌ ÀÖ´Ù¸é ÀÌ °÷¿¡¼­ ÇÑ´Ù - by monkman (2004.11.03) // 100 : // 200 : // 205 : Gdiplus Àû¿ë ÈÄ º¯°æ (05.03.09) // 206 : groupIndex º¯°æ & gradient fill Ãß°¡ (08.05.08) // 207 : MotiveObject Ãß°¡ - by monkman (2009.04.03) // 500 : (¿µ¿ì ÆÇ¸Å¿ë µ¥ÀÌÅÍ) // 505 : Gdiplus Àû¿ë ÈÄ º¯°æ (05.03.09) // 506 : roupIndex º¯°æ & gradient fill Ãß°¡ (08.05.08) // 507 : MotiveObject Ãß°¡ - by monkman (2009.04.03) if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } if (CombiForm->CheckedSleeve.Contains(header.ESleeve)) { //if (CombiForm->DetailSleeve[header.ESleeve] != 0 && !(DetailSleeve[header.ESleeve] & 1)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // DetailSleeve[header.ESleeve] >>= 1; // continue; //} //DetailSleeve[header.ESleeve] >>= 1; // DetailStyleÀÌ 400°³°¡ µÇ¸é¼­ Ãß°¡µÈ ºÎºÐ, Counter°¡ ´ëÇ¥½ºÅ¸ÀϺ°·Î °¢°¢ÀÖ°í, ¼±Åà ¿©ºÎ¸¦ ³ªÅ¸³»´Â Detail ¹è¿­ÀÌ ÀÖ´Ù // by monkman (2004.05.18) - with celberus CompareSet = 0; for (int k = 0; k < MAX_DETAIL; k++) { CompareSet |= CombiForm->DetailSleeve[header.ESleeve][k]; } if (CompareSet != 0 && !(DetailSleeve[header.ESleeve][SleeveCounter[header.ESleeve]/8] & 1)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; DetailSleeve[header.ESleeve][SleeveCounter[header.ESleeve]/8] >>= 1; SleeveCounter[header.ESleeve]++; continue; } DetailSleeve[header.ESleeve][SleeveCounter[header.ESleeve]/8] >>= 1; SleeveCounter[header.ESleeve]++; pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. SleHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(SleHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà SleFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(SleHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà SleBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } ProgressBar1->Position = 15; ///======= Collar for (int i = 0; i < ColFileList->Count; i++) { filename = ColFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } if (CombiForm->CheckedCollar.Contains(header.ECollar)) { //if (CombiForm->DetailCollar[header.ECollar] != 0 && !(DetailCollar[header.ECollar] & 1)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // DetailCollar[header.ECollar] >>= 1; // continue; //} //DetailCollar[header.ECollar] >>= 1; // DetailStyleÀÌ 400°³°¡ µÇ¸é¼­ Ãß°¡µÈ ºÎºÐ, Counter°¡ ´ëÇ¥½ºÅ¸ÀϺ°·Î °¢°¢ÀÖ°í, ¼±Åà ¿©ºÎ¸¦ ³ªÅ¸³»´Â Detail ¹è¿­ÀÌ ÀÖ´Ù // by monkman (2004.05.18) - with celberus CompareSet = 0; for (int k = 0; k < MAX_DETAIL; k++) { CompareSet |= CombiForm->DetailCollar[header.ECollar][k]; } if (CompareSet != 0 && !(DetailCollar[header.ECollar][CollarCounter[header.ECollar]/8] & 1)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; DetailCollar[header.ECollar][CollarCounter[header.ECollar]/8] >>= 1; CollarCounter[header.ECollar]++; continue; } DetailCollar[header.ECollar][CollarCounter[header.ECollar]/8] >>= 1; CollarCounter[header.ECollar]++; pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. ColHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(ColHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà ColFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(ColHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà ColBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } // ÀÌ ºÎºÐÀÌ ¿Ö ÇÊ¿äÇÑÁö ¸ð¸£°ÚÀ½.. ÀÏ´Ü ÁÖ¼® ó¸® - by monkman (2004.05.19) //////////////////////////////////////////////////////////////////////////////// /////======= Belt, Bend // for (int i = 0; i < BeltFileList->Count; i++) { // filename = BeltFileList->Strings[i]; // // // // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version); // // // Version¿¡ µû¶ó ÇØ¾ßÇÒ ÀÛ¾÷ÀÌ ÀÖ´Ù¸é ÀÌ °÷¿¡¼­ ÇÑ´Ù - by monkman (2004.11.03) // switch (Version) { // case 100 : // Version == 100 // case 200 : // Version == 200 // break; // #ifndef NOT_STYLEDATA_LOCK // case 500 : // Version == 500 (¿µ¿ì ÆÇ¸Å¿ë µ¥ÀÌÅÍ) // // HASP°ú üũ ÇÑ´Ù // if (!VecDraw->CheckSTYLock(hFile, header)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // continue; // } // else break; // #endif // default : // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // continue; // } // // if (CombiForm->CheckedBelt.Contains(header.EBelt)) { // if (CombiForm->DetailBelt[header.EBelt] != 0 && !(DetailBelt[header.EBelt] & 1)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // DetailBelt[header.EBelt] >>= 1; // continue; // } // DetailBelt[header.EBelt] >>= 1; // // pheader = new STYLEDATAFILEHEADER; // VecDraw->CopySTYHeader(pheader, header); // BeltHeaderList->Add(pheader); // // if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) // dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); // } else { // dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); // } // if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç // VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); // nPos = 0; // for (int j = 0; j < header.Count1; j++) { // if ((data = new TVecData(BeltHeaderList->Count))==NULL) goto fail; // ReadStyleData(StyleData, data, &nPos); // data->TextString = filename; // Report ¿ë Àӽà // BeltFrontList->Add(data); // } // for (int j = 0; j < header.Count2; j++) { // if ((data = new TVecData(BeltHeaderList->Count))==NULL) goto fail; // ReadStyleData(StyleData, data, &nPos); // data->TextString = filename; // Report ¿ë Àӽà // BeltBackList->Add(data); // } // } // if (StyleData) { // HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ // StyleData = NULL; // } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // } // // ProgressBar1->Position = 20; //////////////////////////////////////////////////////////////////////////////// ///======= Silhouette silcount = 0; for (int i = 0; i < SilFileList->Count; i++) { filename = SilFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } // Version == 100 À϶§.. if (header.ESilhouette == 0) { if (CombiForm->CheckedOldSilhouette[silcount++]) { pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. SilHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(SilHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà SilFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(SilHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà SilBackList->Add(data); } } } // Version == 200 À϶§.. if (CombiForm->CheckedSilhouette.Contains(header.ESilhouette)) { // if (CombiForm->DetailSilhouette[header.ESilhouette] != 0 && !(DetailSilhouette[header.ESilhouette] & 1)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // DetailSilhouette[header.ESilhouette] >>= 1; // continue; // } // DetailSilhouette[header.ESilhouette] >>= 1; // DetailStyleÀÌ 400°³°¡ µÇ¸é¼­ Ãß°¡µÈ ºÎºÐ, Counter°¡ ´ëÇ¥½ºÅ¸ÀϺ°·Î °¢°¢ÀÖ°í, ¼±Åà ¿©ºÎ¸¦ ³ªÅ¸³»´Â Detail ¹è¿­ÀÌ ÀÖ´Ù // by monkman (2004.05.18) - with celberus CompareSet = 0; for (int k = 0; k < MAX_DETAIL; k++) { CompareSet |= CombiForm->DetailSilhouette[header.ESilhouette][k]; } if (CompareSet != 0 && !(DetailSilhouette[header.ESilhouette][SilhouetteCounter[header.ESilhouette]/8] & 1)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; DetailSilhouette[header.ESilhouette][SilhouetteCounter[header.ESilhouette]/8] >>= 1; SilhouetteCounter[header.ESilhouette]++; continue; } DetailSilhouette[header.ESilhouette][SilhouetteCounter[header.ESilhouette]/8] >>= 1; SilhouetteCounter[header.ESilhouette]++; pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. SilHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(SilHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà SilFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(SilHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà SilBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } // IllustForm¿¡¼­ ³Ñ¾î¿Â µ¥ÀÌÅͶó¸é ¿©±â¼­ AddÇÑ´Ù.. - by monkman if (bIsIllustForm) { TVecData *cdata; ///======= Silhouette pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, HDPatUpSil); SilHeaderList->Add(pheader); for (int j = 0; j < HDPatUpSil.Count1; j++) { if ((data = new TVecData(SilHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatUpSil->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Top Silhouette"; // Report ¿ë Àӽà SilFrontList->Add(data); } for (int j = HDPatUpSil.Count1; j < (HDPatUpSil.Count1 + HDPatUpSil.Count2); j++) { if ((data = new TVecData(SilHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatUpSil->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Top Silhouette"; // Report ¿ë Àӽà SilBackList->Add(data); } ///======= Sleeve if (HDPatUpSil.bSleeve) { pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, HDPatUpSle); SleHeaderList->Add(pheader); for (int j = 0; j < HDPatUpSle.Count1; j++) { if ((data = new TVecData(SleHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatUpSle->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Top Sleeve"; // Report ¿ë Àӽà SleFrontList->Add(data); } for (int j = HDPatUpSle.Count1; j < (HDPatUpSle.Count1 + HDPatUpSle.Count2); j++) { if ((data = new TVecData(SleHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatUpSle->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Top Sleeve"; // Report ¿ë Àӽà SleBackList->Add(data); } } ///======= Collar if (HDPatUpSil.bCollar) { pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, HDPatUpCol); ColHeaderList->Add(pheader); for (int j = 0; j < HDPatUpCol.Count1; j++) { if ((data = new TVecData(ColHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatUpCol->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Top Collar"; // Report ¿ë Àӽà ColFrontList->Add(data); } for (int j = HDPatUpCol.Count1; j < (HDPatUpCol.Count1 + HDPatUpCol.Count2); j++) { if ((data = new TVecData(ColHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatUpCol->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Top Collar"; // Report ¿ë Àӽà ColBackList->Add(data); } } } return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::InitLowerData() { HANDLE hFile = INVALID_HANDLE_VALUE; String path, filename; STYLEDATAFILEHEADER header; PSTYLEDATAFILEHEADER pheader; TVecData *data; BYTE DetailPants[MAX_PANTS][MAX_DETAIL], DetailBelt[MAX_BELT][MAX_DETAIL]; int Version; BYTE *StyleData = NULL; DWORD dwPos; DWORD dwDataSize; // 50 ¹ÙÀÌÆ®¸¦ Àо 0ÀÌ ¾Æ´Ñ ºñÆ®°¡ ÀÖ´ÂÁö üũÇÑ´Ù - by monkman (2004.05.18) BYTE CompareSet = 0; // ¼±ÅÃµÈ ½ºÅ¸ÀϵéÀÇ °³¼ö¸¦ ¼¾´Ù - by monkman (2004.05.18) int PantsCounter[MAX_PANTS]; int BeltCounter[MAX_BELT]; // ¼±ÅÃµÈ ½ºÅ¸ÀϵéÀÇ °³¼ö¸¦ ¼¼´Â Ä«¿îÅÍÀÇ ÃʱâÈ­ - by monkman (2004.05.18) memset(PantsCounter, 0, sizeof(int)*MAX_PANTS); memset(BeltCounter, 0, sizeof(int)*MAX_BELT); //======= ºÎºÐ¼±Åà ½ºÅ¸ÀÏ Á¶ÇÕÀ» À§ÇÑ ÃʱâÈ­ memcpy(DetailPants, CombiForm->DetailPants, sizeof(BYTE)*MAX_PANTS*MAX_DETAIL); memcpy(DetailBelt, CombiForm->DetailBelt, sizeof(BYTE)*MAX_BELT*MAX_DETAIL); // Speed-Up Upgrade ÀÌÀü - by monkman (2004.06.22) //====== °¢ detailº° Fileã¾Æ¼­ filelist¿¡ ÀúÀå //////////////////////////////////////////////////////////////////////////////// // path = FullDirectory + "\\*.sty"; // FullFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = FullDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_BOTTOMFULL)) { FullFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // FullFileList->Sort(); // // // result = true; // path = SilDirectory + "\\*.sty"; // PantsFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = SilDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_PANTS)) { PantsFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // PantsFileList->Sort(); // // result = true; // path = BeltDirectory + "\\*.sty"; // BeltFileList->Clear(); // // if ((hSrch = FindFirstFile(path.c_str(), &wfd)) != INVALID_HANDLE_VALUE) { // while (result) { // filename = BeltDirectory + "\\" + wfd.cFileName; // // // ÀÐÀº ÆÄÀÏÀÇ Çì´õ¸¦ üũÇÏ¿© ¸Â´Â ½ºÅ¸ÀÏÀÎÁö üũ - by monkman (2004.03.26) // if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; // if (CombiForm->STYFileStyleTypeCheck(hFile, filename, CombiForm->Division, CombiForm->DSItems, CombiForm->DSClothes, CombiForm->MainType, SO_BELT)) { BeltFileList->Add(filename); } // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // // result = FindNextFile(hSrch, &wfd); // } // } // FindClose(hSrch); // BeltFileList->Sort(); // // SleFileList->Clear(); // ColFileList->Clear(); // // ProgressBar1->Position = 5; //////////////////////////////////////////////////////////////////////////////// //====== °¢ detailº° Fileã¾Æ¼­ filelist¿¡ ÀúÀå path = FullDirectory; FullFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_BOTTOMFULL, CombiForm->firstyear1, CombiForm->firstseason1, CombiForm->firstyear2, CombiForm->firstseason2, CombiForm->firstcomment); for (int i = 0; i < SCF->BottomWholeStrList->Count; i++) { FullFileList->Add(SCF->BottomWholeStrList->Strings[i]); } path = SilDirectory; PantsFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_PANTS, CombiForm->firstyear1, CombiForm->firstseason1, CombiForm->firstyear2, CombiForm->firstseason2, CombiForm->firstcomment); for (int i = 0; i < SCF->PantsStrList->Count; i++) { PantsFileList->Add(SCF->PantsStrList->Strings[i]); } path = BeltDirectory; BeltFileList->Clear(); SCF->STYSearch(path, CombiForm->Division, CombiForm->MainType, SO_BELT, CombiForm->secondyear1, CombiForm->secondseason1, CombiForm->secondyear2, CombiForm->secondseason2, CombiForm->secondcomment); for (int i = 0; i < SCF->BeltStrList->Count; i++) { BeltFileList->Add(SCF->BeltStrList->Strings[i]); } #ifndef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ÀÇ °æ¿ì¿¡´Â FullStyleÀ» ³ÖÁö ¾Êµµ·Ï ÇÑ´Ù - by monkman (2010.12.28) ///======= ¿ä±¸Ä¡¿¡ ¸Â´Â StyleµéÀ» °ñ¶ó¼­ List¿¡ ÀúÀå ///======= FullStyle for (int i = 0; i < FullFileList->Count; i++) { filename = FullFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } if (CombiForm->CheckedPants.Contains(header.EPants) && CombiForm->CheckedBelt.Contains(header.EBelt)) { pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. FullHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(FullHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); FullFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(FullHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); FullBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } ProgressBar1->Position = 10; #endif ///======= Belt, Bend for (int i = 0; i < BeltFileList->Count; i++) { filename = BeltFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } if (CombiForm->CheckedBelt.Contains(header.EBelt)) { //if (CombiForm->DetailBelt[header.EBelt] != 0 && !(DetailBelt[header.EBelt] & 1)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // DetailBelt[header.EBelt] >>= 1; // continue; //} //DetailBelt[header.EBelt] >>= 1; // DetailStyleÀÌ 400°³°¡ µÇ¸é¼­ Ãß°¡µÈ ºÎºÐ, Counter°¡ ´ëÇ¥½ºÅ¸ÀϺ°·Î °¢°¢ÀÖ°í, ¼±Åà ¿©ºÎ¸¦ ³ªÅ¸³»´Â Detail ¹è¿­ÀÌ ÀÖ´Ù // by monkman (2004.05.18) - with celberus CompareSet = 0; for (int k = 0; k < MAX_DETAIL; k++) { CompareSet |= CombiForm->DetailBelt[header.EBelt][k]; } if (CompareSet != 0 && !(DetailBelt[header.EBelt][BeltCounter[header.EBelt]/8] & 1)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; DetailBelt[header.EBelt][BeltCounter[header.EBelt]/8] >>= 1; BeltCounter[header.EBelt]++; continue; } DetailBelt[header.EBelt][BeltCounter[header.EBelt]/8] >>= 1; BeltCounter[header.EBelt]++; pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. BeltHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(BeltHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà BeltFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(BeltHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); data->TextString = filename; // Report ¿ë Àӽà BeltBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } ProgressBar1->Position = 15; ///======= Pants Silhouette for (int i = 0; i < PantsFileList->Count; i++) { filename = PantsFileList->Strings[i]; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(filename.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; header = VecDraw->ReadSTYFileHeader(hFile, filename, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; continue; } else break; #endif } if (CombiForm->CheckedPants.Contains(header.EPants)) { //if (CombiForm->DetailPants[header.EPants] != 0 && !(DetailPants[header.EPants] & 1)) { // CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; // DetailPants[header.EPants] >>= 1; // continue; //} //DetailPants[header.EPants] >>= 1; // DetailStyleÀÌ 400°³°¡ µÇ¸é¼­ Ãß°¡µÈ ºÎºÐ, Counter°¡ ´ëÇ¥½ºÅ¸ÀϺ°·Î °¢°¢ÀÖ°í, ¼±Åà ¿©ºÎ¸¦ ³ªÅ¸³»´Â Detail ¹è¿­ÀÌ ÀÖ´Ù // by monkman (2004.05.18) - with celberus CompareSet = 0; for (int k = 0; k < MAX_DETAIL; k++) { CompareSet |= CombiForm->DetailPants[header.EPants][k]; } if (CompareSet != 0 && !(DetailPants[header.EPants][PantsCounter[header.EPants]/8] & 1)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; DetailPants[header.EPants][PantsCounter[header.EPants]/8] >>= 1; PantsCounter[header.EPants]++; continue; } DetailPants[header.EPants][PantsCounter[header.EPants]/8] >>= 1; PantsCounter[header.EPants]++; pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, header); // ÀÛ¾÷Áö½Ã¼­ (ÆÄÀϸíÀ» ¾Ë±â À§ÇØ FileListÀÇ Index¸¦ ±â·Ï) - by monkman (2010.12.22) pheader->FileIndex = i+1; // 0ÀÌ ÃʱⰪ(¼³Á¤ ¾ÈµÈ °ª), 1À» ´õÇØÁØ´Ù. PantsHeaderList->Add(pheader); if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, header); dwPos = 0; for (int j = 0; j < header.Count1; j++) { if ((data = new TVecData(PantsHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); PantsFrontList->Add(data); } for (int j = 0; j < header.Count2; j++) { if ((data = new TVecData(PantsHeaderList->Count))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); PantsBackList->Add(data); } } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } // IllustForm¿¡¼­ ³Ñ¾î¿Â µ¥ÀÌÅͶó¸é ¿©±â¼­ AddÇÑ´Ù.. - by monkman if (bIsIllustForm) { TVecData *cdata; ///======= Pants Silhouette pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, HDPatDnSil); PantsHeaderList->Add(pheader); for (int j = 0; j < HDPatDnSil.Count1; j++) { if ((data = new TVecData(PantsHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatDnSil->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Bottom Silhouette"; // Report ¿ë Àӽà PantsFrontList->Add(data); } for (int j = HDPatDnSil.Count1; j < (HDPatDnSil.Count1 + HDPatDnSil.Count2); j++) { if ((data = new TVecData(PantsHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatDnSil->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Bottom Silhouette"; // Report ¿ë Àӽà PantsBackList->Add(data); } ///======= Belt, Bend if (HDPatDnSil.bBelt) { pheader = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader, HDPatDnBelt); BeltHeaderList->Add(pheader); for (int j = 0; j < HDPatDnBelt.Count1; j++) { if ((data = new TVecData(BeltHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatDnBelt->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Bottom Bend/Belt"; // Report ¿ë Àӽà BeltFrontList->Add(data); } for (int j = HDPatDnBelt.Count1; j < (HDPatDnBelt.Count1 + HDPatDnBelt.Count2); j++) { if ((data = new TVecData(BeltHeaderList->Count))==NULL) goto fail; cdata = (TVecData *)PatDnBelt->Items[j]; data->Copy(cdata); data->TextString = "Style Illust Bottom Bend/Belt"; // Report ¿ë Àӽà BeltBackList->Add(data); } } } return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::MakeUpperData() { PSTYLEDATAFILEHEADER pheader, pheader2, pheader3, pheader4; // 4:Ä«ÇÇ¿ë TVecData *data, *temp; int Count = 0, GroupIndex; bool bRaglanFail = false; #ifdef WORKSHEET TCombinationData *CombiData = NULL; #endif GroupIndexState = 0; for (int i = 0; i < FullHeaderList->Count; i++) { // Á¶°Ç ºÎÇÕ FullStyle¸ÕÀú ¹è¿­ Count++; pheader = (PSTYLEDATAFILEHEADER) FullHeaderList->Items[i]; for (int k = 0; k < FullFrontList->Count; k++) { temp = (TVecData *) FullFrontList->Items[k]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); UpResultFrontList->Add(data); } for (int k = 0; k < FullBackList->Count; k++) { temp = (TVecData *) FullBackList->Items[k]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); UpResultBackList->Add(data); } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); UpResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; UpperCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, FullFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, FullFrontList, FullBackList); #endif } for (int i = 0; i < SilHeaderList->Count; i++) { // double Fmovx, Fmovy,Bmovx, Bmovy; ProgressBar1->Position = 20+60*i/SilHeaderList->Count; double ColLength1, ColLength2, BColLength1, BColLength2; DPOINT FCenter, FSilSleLeftUp, FSilSleLeftUp1, // 1,2 ´Â Á¶ÀýÁ¡ FSilSleLeftDown, FSilSleLeftDown1, FSilSleRightUp, FSilSleRightUp1, FSilSleRightDown, FSilSleRightDown1, FSilColLeft, FSilColRight, FSilSleRightCen, FSilSleRightCen1, FSilSleRightCen2, FSilSleLeftCen, FSilSleLeftCen1, FSilSleLeftCen2; DPOINT BCenter, BSilSleLeftUp, BSilSleLeftUp1, // 1,2 ´Â Á¶ÀýÁ¡ BSilSleLeftDown, BSilSleLeftDown1, BSilSleRightUp, BSilSleRightUp1, BSilSleRightDown, BSilSleRightDown1, BSilColLeft, BSilColRight, BSilSleRightCen, BSilSleRightCen1, BSilSleRightCen2, BSilSleLeftCen, BSilSleLeftCen1, BSilSleLeftCen2; pheader = (PSTYLEDATAFILEHEADER) SilHeaderList->Items[i]; //================== ¾ÕÆÇ silhouetteÀÇ data ã±â for (int j = 0; j < SilFrontList->Count; j++) { // center, trait ã±â temp = (TVecData *) SilFrontList->Items[j]; if (!temp->Equal(i+1)) continue; if (temp->TraitSet.Contains(SIL_CENTER)) { FCenter = temp->pList[pheader->TraitFrontNumber[SIL_CENTER]]; } if (temp->TraitSet.Contains(SIL_SLEEVELEFT1)) { int num1 = pheader->TraitFrontNumber[SIL_SLEEVELEFT1]; int num2 = pheader->TraitFrontNumber[SIL_SLEEVELEFT2]; FSilSleLeftUp = temp->pList[num1]; if (num1 > num2) FSilSleLeftUp1 = temp->pList[(num1-num2)<9 ? num1-1 : num1+1]; else FSilSleLeftUp1 = temp->pList[(num2-num1)<9 ? num1+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVELEFT2)) { int num1 = pheader->TraitFrontNumber[SIL_SLEEVELEFT1]; int num2 = pheader->TraitFrontNumber[SIL_SLEEVELEFT2]; FSilSleLeftDown = temp->pList[num2]; if (num2 > num1) FSilSleLeftDown1 = temp->pList[(num2-num1)<9 ? num2-1 : num2+1]; else FSilSleLeftDown1 = temp->pList[(num1-num2)<9 ? num2+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVELEFT3)) { int num = pheader->TraitFrontNumber[SIL_SLEEVELEFT3]; FSilSleLeftCen = temp->pList[num]; if (num > pheader->TraitFrontNumber[SIL_SLEEVELEFT1]) { FSilSleLeftCen1 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; FSilSleLeftCen2 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; }else { FSilSleLeftCen1 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; FSilSleLeftCen2 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; } } if (temp->TraitSet.Contains(SIL_SLEEVERIGHT1)) { int num1 = pheader->TraitFrontNumber[SIL_SLEEVERIGHT1]; int num2 = pheader->TraitFrontNumber[SIL_SLEEVERIGHT2]; FSilSleRightUp = temp->pList[num1]; if (num1 > num2) FSilSleRightUp1 = temp->pList[(num1-num2)<9 ? num1-1 : num1+1]; else FSilSleRightUp1 = temp->pList[(num2-num1)<9 ? num1+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVERIGHT2)) { int num1 = pheader->TraitFrontNumber[SIL_SLEEVERIGHT1]; int num2 = pheader->TraitFrontNumber[SIL_SLEEVERIGHT2]; FSilSleRightDown = temp->pList[num2]; if (num2 > num1) FSilSleRightDown1 = temp->pList[(num2-num1)<9 ? num2-1 : num2+1]; else FSilSleRightDown1 = temp->pList[(num1-num2)<9 ? num2+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVERIGHT3)) { int num = pheader->TraitFrontNumber[SIL_SLEEVERIGHT3]; FSilSleRightCen = temp->pList[num]; if (num > pheader->TraitFrontNumber[SIL_SLEEVERIGHT1]) { FSilSleRightCen1 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; FSilSleRightCen2 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; }else { FSilSleRightCen1 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; FSilSleRightCen2 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; } } if (temp->TraitSet.Contains(SIL_COLLARLEFT)) { FSilColLeft = temp->pList[pheader->TraitFrontNumber[SIL_COLLARLEFT]]; } if (temp->TraitSet.Contains(SIL_COLLARRIGHT)) { FSilColRight = temp->pList[pheader->TraitFrontNumber[SIL_COLLARRIGHT]]; } } //================== µÞÆÇ silhouetteÀÇ data ã±â for (int j = 0; j < SilBackList->Count; j++) { // center, trait ã±â temp = (TVecData *) SilBackList->Items[j]; if (!temp->Equal(i+1)) continue; if (temp->TraitSet.Contains(SIL_CENTER)) { BCenter = temp->pList[pheader->TraitBackNumber[SIL_CENTER]]; } if (temp->TraitSet.Contains(SIL_SLEEVELEFT1)) { int num1 = pheader->TraitBackNumber[SIL_SLEEVELEFT1]; int num2 = pheader->TraitBackNumber[SIL_SLEEVELEFT2]; BSilSleLeftUp = temp->pList[num1]; if (num1 > num2) BSilSleLeftUp1 = temp->pList[(num1-num2)<9 ? num1-1 : num1+1]; else BSilSleLeftUp1 = temp->pList[(num2-num1)<9 ? num1+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVELEFT2)) { int num1 = pheader->TraitBackNumber[SIL_SLEEVELEFT1]; int num2 = pheader->TraitBackNumber[SIL_SLEEVELEFT2]; BSilSleLeftDown = temp->pList[num2]; if (num2 > num1) BSilSleLeftDown1 = temp->pList[(num2-num1)<9 ? num2-1 : num2+1]; else BSilSleLeftDown1 = temp->pList[(num1-num2)<9 ? num2+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVELEFT3)) { int num = pheader->TraitBackNumber[SIL_SLEEVELEFT3]; BSilSleLeftCen = temp->pList[num]; if (num > pheader->TraitBackNumber[SIL_SLEEVELEFT1]) { BSilSleLeftCen1 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; BSilSleLeftCen2 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; }else { BSilSleLeftCen1 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; BSilSleLeftCen2 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; } } if (temp->TraitSet.Contains(SIL_SLEEVERIGHT1)) { int num1 = pheader->TraitBackNumber[SIL_SLEEVERIGHT1]; int num2 = pheader->TraitBackNumber[SIL_SLEEVERIGHT2]; BSilSleRightUp = temp->pList[num1]; if (num1 > num2) BSilSleRightUp1 = temp->pList[(num1-num2)<9 ? num1-1 : num1+1]; else BSilSleRightUp1 = temp->pList[(num2-num1)<9 ? num1+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVERIGHT2)) { int num1 = pheader->TraitBackNumber[SIL_SLEEVERIGHT1]; int num2 = pheader->TraitBackNumber[SIL_SLEEVERIGHT2]; BSilSleRightDown = temp->pList[num2]; if (num2 > num1) BSilSleRightDown1 = temp->pList[(num2-num1)<9 ? num2-1 : num2+1]; else BSilSleRightDown1 = temp->pList[(num1-num2)<9 ? num2+1 : temp->nCount*3-1]; } if (temp->TraitSet.Contains(SIL_SLEEVERIGHT3)) { int num = pheader->TraitBackNumber[SIL_SLEEVERIGHT3]; BSilSleRightCen = temp->pList[num]; if (num > pheader->TraitBackNumber[SIL_SLEEVERIGHT1]) { BSilSleRightCen1 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; BSilSleRightCen2 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; }else { BSilSleRightCen1 = temp->pList[num != temp->nCount*3 ? num+1 : 1]; BSilSleRightCen2 = temp->pList[num != 0 ? num-1 : temp->nCount*3-1]; } } if (temp->TraitSet.Contains(SIL_COLLARLEFT)) { BSilColLeft = temp->pList[pheader->TraitBackNumber[SIL_COLLARLEFT]]; } if (temp->TraitSet.Contains(SIL_COLLARRIGHT)) { BSilColRight = temp->pList[pheader->TraitBackNumber[SIL_COLLARRIGHT]]; } } //============ À̵¿(º¸Á¤)¼öÄ¡¿Í Ä®¶óÀÇ È®´ë/Ãà¼Ò ºñÀ²À» À§ÇÑ ±æÀÌ ±¸Çϱâ /* Fmovx = CENTER_X - temp->pList[pheader->TraitFrontNumber[SIL_CENTER]].x; Fmovy = CENTER_Y - temp->pList[pheader->TraitFrontNumber[SIL_CENTER]].y; Bmovx = CENTER_X - temp->pList[pheader->TraitBackNumber[SIL_CENTER]].x; Bmovy = CENTER_Y - temp->pList[pheader->TraitBackNumber[SIL_CENTER]].y;*/ ColLength1 = sqrt((FSilColRight.x-FSilColLeft.x)*(FSilColRight.x-FSilColLeft.x)+(FSilColRight.y-FSilColLeft.y)*(FSilColRight.y-FSilColLeft.y)); BColLength1 = sqrt((BSilColRight.x-BSilColLeft.x)*(BSilColRight.x-BSilColLeft.x)+(BSilColRight.y-BSilColLeft.y)*(BSilColRight.y-BSilColLeft.y)); if ((pheader->bSleeve && SleHeaderList->Count) && (pheader->bCollar && ColHeaderList->Count)) goto CombiAll; else if (pheader->bSleeve && SleHeaderList->Count) goto CombiSleeve; else if (pheader->bCollar && ColHeaderList->Count) goto CombiCollar; else goto CombiSilhouette; /////////////////////////////////////////////////////////////////////// CombiAll: /////////////////////////////////////////////////////////////////////// for (int j = 0; j < SleHeaderList->Count; j++) { ProgressBar1->Position += 60/SleHeaderList->Count/SilHeaderList->Count+0.5; double slex1, sley1, slex2, sley2, revx; // 1: ¿À¸¥ÂÊ ½½¸®ºê 2: »õ·Î »ý¼ºµÇ´Â ¿ÞÂÊ ½½¸®ºê, revx:¹ÝÀüº¹»ç ±âÁØ XÁÂÇ¥ double Bslex1, Bsley1, Bslex2, Bsley2, Brevx; // µÞÆÇ pheader2 = (PSTYLEDATAFILEHEADER) SleHeaderList->Items[j]; #ifndef WORKSHEET // ÀÛ¾÷Áö½Ã¼­¿¡¼­´Â DS_RAGLANÀÌ ¾ø´Ù - by monkman (2011.01.11) if (pheader->EMethod == DH_RAGLAN && pheader2->ESleeve != DS_RAGLAN) {bRaglanFail = true; continue; } if (pheader->EMethod != DH_RAGLAN && pheader2->ESleeve == DS_RAGLAN) {bRaglanFail = true; continue; } #endif //=============== ½½¸®ºê µ¥ÀÌÅÍ Ã£±â for (int k = 0; k < SleFrontList->Count; k++) { // ¾ÕÆÇ temp = (TVecData *) SleFrontList->Items[k]; if (!temp->Equal(j+1)) continue; if (temp->TraitSet.Contains(SLE_BASIS)) { slex1 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].x - FSilSleRightUp.x; sley1 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].y - FSilSleRightUp.y; slex2 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].x - FSilSleLeftUp.x; sley2 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].y - FSilSleLeftUp.y; revx = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].x; break; } } for (int k = 0; k < SleBackList->Count; k++) { // µÞÆÇ temp = (TVecData *) SleBackList->Items[k]; if (!temp->Equal(j+1)) continue; if (temp->TraitSet.Contains(SLE_BASIS)) { Bslex1 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].x - BSilSleRightUp.x; Bsley1 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].y - BSilSleRightUp.y; Bslex2 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].x - BSilSleLeftUp.x; Bsley2 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].y - BSilSleLeftUp.y; Brevx = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].x; break; } } for (int k = 0; k < ColHeaderList->Count; k++) { DPOINT FColLeft, FColRight, BColLeft, BColRight; DPOINT FRaglanLeft, FRaglanRight, BRaglanLeft, BRaglanRight; // Raglan¿¡¼­´Â Ä®¶ó°¡ ½½¸®ºê¿¡ ¸ÂÃß¾î µé¾î°£´ç~ double colx, coly, ratio, Bcolx, Bcoly, Bratio; Count++; pheader3 = (PSTYLEDATAFILEHEADER) ColHeaderList->Items[k]; //================= Ä®¶ó µ¥ÀÌÅÍ Ã£±â for (int l = 0; l < ColFrontList->Count; l++) { // ¾ÕÆÇ temp = (TVecData *) ColFrontList->Items[l]; if (!temp->Equal(k+1)) continue; if (temp->TraitSet.Contains(COL_COLLARLEFT)) { FColLeft = temp->pList[pheader3->TraitFrontNumber[COL_COLLARLEFT]]; } if (temp->TraitSet.Contains(COL_COLLARRIGHT)) FColRight = temp->pList[pheader3->TraitFrontNumber[COL_COLLARRIGHT]]; } for (int l = 0; l < ColBackList->Count; l++) { // µÞÆÇ temp = (TVecData *) ColBackList->Items[l]; if (!temp->Equal(k+1)) continue; if (temp->TraitSet.Contains(COL_COLLARLEFT)) { BColLeft = temp->pList[pheader3->TraitBackNumber[COL_COLLARLEFT]]; } if (temp->TraitSet.Contains(COL_COLLARRIGHT)) BColRight = temp->pList[pheader3->TraitBackNumber[COL_COLLARRIGHT]]; } //=========== ÀÌÁ¦ºÎÅÍ ´ëÀÔ ½ÃÀÛ //=========== ½Ç·ç¿§ ´ëÀÔ for (int l = 0; l < SilFrontList->Count; l++) { temp = (TVecData *) SilFrontList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultFrontList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } for (int l = 0; l < SilBackList->Count; l++) { temp = (TVecData *) SilBackList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultBackList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); UpResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; UpperCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, SilFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, SilFrontList, SilBackList); CombiData->SetInfoByHeader(pheader2, SleFileList); CombiData->SetDataListByHeader(pheader2->Sort, j+1, SleFrontList, SleBackList); CombiData->SetInfoByHeader(pheader3, ColFileList); CombiData->SetDataListByHeader(pheader3->Sort, k+1, ColFrontList, ColBackList); #endif //=========== ¿À¸¥ÂÊ ½½¸®ºê ´ëÀÔ //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleFrontList->Count; l++) { int num1 = pheader2->TraitFrontNumber[SLE_BASIS], num2 = pheader2->TraitFrontNumber[SLE_ADJUST]; temp = (TVecData *) SleFrontList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x -= slex1; data->pList[m].y -= sley1; } if (data->TraitSet.Contains(SLE_COLLAR)) { // ½½¸®ºê Ä®¶ó µé¾î°¥Á¡ (raglan¿ë) FRaglanRight = data->pList[pheader2->TraitFrontNumber[SLE_COLLAR]]; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) { //Á¶ÀýÁ¡ ¸ÂÃçÁÖ±â (¿ÀºêÁ§Æ® »ý¼º ¹æÇâ¿¡ µû¶ó ´Ù¸§) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = FSilSleRightUp1; }else { data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = FSilSleRightUp1; } } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ data->pList[num2] = FSilSleRightDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) { data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = FSilSleRightDown1; }else { data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = FSilSleRightDown1; } /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = FSilSleRightCen2; data->pList[num2] = FSilSleRightCen; data->pList[num2-1] = FSilSleRightCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = FSilSleRightCen1; data->pList[num1] = FSilSleRightCen; data->pList[num1-1] = FSilSleRightCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = FSilSleRightCen1; data->pList[num2+3] = FSilSleRightCen; data->pList[num2+3-1] = FSilSleRightCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = FSilSleRightCen2; data->pList[num1+3] = FSilSleRightCen; data->pList[num1+3-1] = FSilSleRightCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleBackList->Count; l++) { int num1 = pheader2->TraitBackNumber[SLE_BASIS], num2 = pheader2->TraitBackNumber[SLE_ADJUST]; temp = (TVecData *) SleBackList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x -= Bslex1; data->pList[m].y -= Bsley1; } if (data->TraitSet.Contains(SLE_COLLAR)) { // ½½¸®ºê Ä®¶ó µé¾î°¥Á¡ (raglan¿ë) BRaglanRight = data->pList[pheader2->TraitBackNumber[SLE_COLLAR]]; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = BSilSleRightUp1; else data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = BSilSleRightUp1; } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ // int num = pheader2->TraitBackNumber[SLE_ADJUST]; data->pList[num2] = BSilSleRightDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = BSilSleRightDown1; else data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = BSilSleRightDown1; /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = BSilSleRightCen2; data->pList[num2] = BSilSleRightCen; data->pList[num2-1] = BSilSleRightCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = BSilSleRightCen1; data->pList[num1] = BSilSleRightCen; data->pList[num1-1] = BSilSleRightCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = BSilSleRightCen1; data->pList[num2+3] = BSilSleRightCen; data->pList[num2+3-1] = BSilSleRightCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = BSilSleRightCen2; data->pList[num1+3] = BSilSleRightCen; data->pList[num1+3-1] = BSilSleRightCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultBackList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 //============ ¿ÞÂÊ ½½¸®ºê ´ëÀÔ for (int l = 0; l < SleFrontList->Count; l++) { int num1 = pheader2->TraitFrontNumber[SLE_BASIS], num2 = pheader2->TraitFrontNumber[SLE_ADJUST]; temp = (TVecData *) SleFrontList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x = 2*revx - data->pList[m].x - slex2; data->pList[m].y -= sley2; } if (data->TraitSet.Contains(SLE_COLLAR)) { // ½½¸®ºê Ä®¶ó µé¾î°¥Á¡ (raglan¿ë) FRaglanLeft = data->pList[pheader2->TraitFrontNumber[SLE_COLLAR]]; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = FSilSleLeftUp1; else data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = FSilSleLeftUp1; } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ data->pList[num2] = FSilSleLeftDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = FSilSleLeftDown1; else data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = FSilSleLeftDown1; /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = FSilSleLeftCen2; data->pList[num2] = FSilSleLeftCen; data->pList[num2-1] = FSilSleLeftCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = FSilSleLeftCen1; data->pList[num1] = FSilSleLeftCen; data->pList[num1-1] = FSilSleLeftCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = FSilSleLeftCen1; data->pList[num2+3] = FSilSleLeftCen; data->pList[num2+3-1] = FSilSleLeftCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = FSilSleLeftCen2; data->pList[num1+3] = FSilSleLeftCen; data->pList[num1+3-1] = FSilSleLeftCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleBackList->Count; l++) { int num1 = pheader2->TraitBackNumber[SLE_BASIS], num2 = pheader2->TraitBackNumber[SLE_ADJUST]; temp = (TVecData *) SleBackList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x = 2*Brevx - data->pList[m].x - Bslex2; data->pList[m].y -= Bsley2; } if (data->TraitSet.Contains(SLE_COLLAR)) { // ½½¸®ºê Ä®¶ó µé¾î°¥Á¡ (raglan¿ë) BRaglanLeft = data->pList[pheader2->TraitBackNumber[SLE_COLLAR]]; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = BSilSleLeftUp1; else data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = BSilSleLeftUp1; } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ data->pList[num2] = BSilSleLeftDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = BSilSleLeftDown1; else data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = BSilSleLeftDown1; /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = BSilSleLeftCen2; data->pList[num2] = BSilSleLeftCen; data->pList[num2-1] = BSilSleLeftCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = BSilSleLeftCen1; data->pList[num1] = BSilSleLeftCen; data->pList[num1-1] = BSilSleLeftCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = BSilSleLeftCen1; data->pList[num2+3] = BSilSleLeftCen; data->pList[num2+3-1] = BSilSleLeftCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = BSilSleLeftCen2; data->pList[num1+3] = BSilSleLeftCen; data->pList[num1+3-1] = BSilSleLeftCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultBackList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 #ifndef WORKSHEET if (pheader->EMethod == DH_RAGLAN && pheader2->ESleeve == DS_RAGLAN) { FSilColLeft = FRaglanLeft; FSilColRight = FRaglanRight; BSilColLeft = BRaglanLeft; BSilColRight = BRaglanRight; ColLength1 = sqrt((FSilColRight.x-FSilColLeft.x)*(FSilColRight.x-FSilColLeft.x)+(FSilColRight.y-FSilColLeft.y)*(FSilColRight.y-FSilColLeft.y)); BColLength1 = sqrt((BSilColRight.x-BSilColLeft.x)*(BSilColRight.x-BSilColLeft.x)+(BSilColRight.y-BSilColLeft.y)*(BSilColRight.y-BSilColLeft.y)); } #else // ÀÛ¾÷Áö½Ã¼­¿¡´Â DS_RAGLANÀÌ ¾ø´Ù - by monkman (2011.01.11) if (pheader->EMethod == DH_RAGLAN/* && pheader2->ESleeve == DS_RAGLAN*/) { FSilColLeft = FRaglanLeft; FSilColRight = FRaglanRight; BSilColLeft = BRaglanLeft; BSilColRight = BRaglanRight; ColLength1 = sqrt((FSilColRight.x-FSilColLeft.x)*(FSilColRight.x-FSilColLeft.x)+(FSilColRight.y-FSilColLeft.y)*(FSilColRight.y-FSilColLeft.y)); BColLength1 = sqrt((BSilColRight.x-BSilColLeft.x)*(BSilColRight.x-BSilColLeft.x)+(BSilColRight.y-BSilColLeft.y)*(BSilColRight.y-BSilColLeft.y)); } #endif //========= Collar ±æÀÌ¿Í ºñÀ² ±¸Çϱâ colx = FColLeft.x - FSilColLeft.x; coly = FColLeft.y - FSilColLeft.y; Bcolx = BColLeft.x - BSilColLeft.x; Bcoly = BColLeft.y - BSilColLeft.y; ColLength2 = sqrt((FColRight.x-FColLeft.x)*(FColRight.x-FColLeft.x)+(FColRight.y-FColLeft.y)*(FColRight.y-FColLeft.y)); BColLength2 = sqrt((BColRight.x-BColLeft.x)*(BColRight.x-BColLeft.x)+(BColRight.y-BColLeft.y)*(BColRight.y-BColLeft.y)); // ¡Ú¡Ú ³ªÁß¿¡ ÆíÁý±â¿¡¼­ ¼öÁ¤À» ºÁ¾ßÇÑ´Ù - by monkman if (ColLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } if (BColLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } ratio = ColLength1 / ColLength2; Bratio = BColLength1 / BColLength2; //============== Ä®¶ó ´ëÀÔ for (int l = 0; l < ColFrontList->Count; l++) { temp = (TVecData *) ColFrontList->Items[l]; if (!temp->Equal(k+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); // TEXTBOX ¼öÁ¤½Ã ÀÌ ºÎºÐÀ» ¼öÁ¤ - by monkman if (data->Kind != V_TEXTBOX) { for (int m = 0; m < data->nCount*3 +1; m++) { data->pList[m].x = (data->pList[m].x - FColLeft.x) * ratio + FColLeft.x - colx; data->pList[m].y = (data->pList[m].y - FColLeft.y) * ratio + FColLeft.y - coly; } } // else { // for (int m = 0; m < 5; m++) { // data->pList[m].x = (data->pList[m].x - FColLeft.x) * ratio + FColLeft.x - colx; // data->pList[m].y = (data->pList[m].y - FColLeft.y) * ratio + FColLeft.y - coly; // } // } SET_RECT; data->GroupIndex = GroupIndex; UpResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < ColBackList->Count; l++) { temp = (TVecData *) ColBackList->Items[l]; if (!temp->Equal(k+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); // TEXTBOX ¼öÁ¤½Ã ÀÌ ºÎºÐÀ» ¼öÁ¤ - by monkman if (data->Kind != V_TEXTBOX) { for (int m = 0; m < data->nCount*3 +1; m++) { data->pList[m].x = (data->pList[m].x - BColLeft.x) * Bratio + BColLeft.x - Bcolx; data->pList[m].y = (data->pList[m].y - BColLeft.y) * Bratio + BColLeft.y - Bcoly; } } // else { // for (int m = 0; m < 5; m++) { // data->pList[m].x = (data->pList[m].x - BColLeft.x) * ratio + BColLeft.x - Bcolx; // data->pList[m].y = (data->pList[m].y - BColLeft.y) * ratio + BColLeft.y - Bcoly; // } // } SET_RECT; data->GroupIndex = GroupIndex; UpResultBackList->Add(data); } #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData->SetDataListByHeader(SO_TOPFULL, Count, UpResultFrontList, UpResultBackList); #endif } } goto next; /////////////////////////////////////////////////////////////////////// CombiSleeve: /////////////////////////////////////////////////////////////////////// for (int j = 0; j < SleHeaderList->Count; j++) { ProgressBar1->Position += 60/SleHeaderList->Count/SilHeaderList->Count+0.5; double slex1, sley1, slex2, sley2, revx; // 1: ¿À¸¥ÂÊ ½½¸®ºê 2: »õ·Î »ý¼ºµÇ´Â ¿ÞÂÊ ½½¸®ºê, revx:¹ÝÀüº¹»ç ±âÁØ XÁÂÇ¥ double Bslex1, Bsley1, Bslex2, Bsley2, Brevx; // µÞÆÇ pheader2 = (PSTYLEDATAFILEHEADER) SleHeaderList->Items[j]; #ifndef WORKSHEET // ÀÛ¾÷Áö½Ã¼­¿¡´Â DS_RAGLANÀÌ ¾ø´Ù - by monkman (2011.01.11) if (pheader->EMethod == DH_RAGLAN && pheader2->ESleeve != DS_RAGLAN) {bRaglanFail = true; continue; } if (pheader->EMethod != DH_RAGLAN && pheader2->ESleeve == DS_RAGLAN) {bRaglanFail = true; continue; } #endif Count++; //=============== ½½¸®ºê µ¥ÀÌÅÍ Ã£±â for (int k = 0; k < SleFrontList->Count; k++) { // ¾ÕÆÇ temp = (TVecData *) SleFrontList->Items[k]; if (!temp->Equal(j+1)) continue; if (temp->TraitSet.Contains(SLE_BASIS)) { slex1 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].x - FSilSleRightUp.x; sley1 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].y - FSilSleRightUp.y; slex2 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].x - FSilSleLeftUp.x; sley2 = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].y - FSilSleLeftUp.y; revx = temp->pList[pheader2->TraitFrontNumber[SLE_BASIS]].x; break; } } for (int k = 0; k < SleBackList->Count; k++) { // µÞÆÇ temp = (TVecData *) SleBackList->Items[k]; if (!temp->Equal(j+1)) continue; if (temp->TraitSet.Contains(SLE_BASIS)) { Bslex1 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].x - BSilSleRightUp.x; Bsley1 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].y - BSilSleRightUp.y; Bslex2 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].x - BSilSleLeftUp.x; Bsley2 = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].y - BSilSleLeftUp.y; Brevx = temp->pList[pheader2->TraitBackNumber[SLE_BASIS]].x; break; } } //=========== ÀÌÁ¦ºÎÅÍ ´ëÀÔ ½ÃÀÛ //=========== ½Ç·ç¿§ ´ëÀÔ for (int l = 0; l < SilFrontList->Count; l++) { temp = (TVecData *) SilFrontList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultFrontList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } for (int l = 0; l < SilBackList->Count; l++) { temp = (TVecData *) SilBackList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultBackList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); UpResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; UpperCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, SilFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, SilFrontList, SilBackList); CombiData->SetInfoByHeader(pheader2, SleFileList); CombiData->SetDataListByHeader(pheader2->Sort, j+1, SleFrontList, SleBackList); #endif //=========== ¿À¸¥ÂÊ ½½¸®ºê ´ëÀÔ //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleFrontList->Count; l++) { int num1 = pheader2->TraitFrontNumber[SLE_BASIS], num2 = pheader2->TraitFrontNumber[SLE_ADJUST]; temp = (TVecData *) SleFrontList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x -= slex1; data->pList[m].y -= sley1; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) { //Á¶ÀýÁ¡ ¸ÂÃçÁÖ±â (¿ÀºêÁ§Æ® »ý¼º ¹æÇâ¿¡ µû¶ó ´Ù¸§) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = FSilSleRightUp1; }else { data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = FSilSleRightUp1; } } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ data->pList[num2] = FSilSleRightDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) { data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = FSilSleRightDown1; }else { data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = FSilSleRightDown1; } /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = FSilSleRightCen2; data->pList[num2] = FSilSleRightCen; data->pList[num2-1] = FSilSleRightCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = FSilSleRightCen1; data->pList[num1] = FSilSleRightCen; data->pList[num1-1] = FSilSleRightCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = FSilSleRightCen1; data->pList[num2+3] = FSilSleRightCen; data->pList[num2+3-1] = FSilSleRightCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = FSilSleRightCen2; data->pList[num1+3] = FSilSleRightCen; data->pList[num1+3-1] = FSilSleRightCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleBackList->Count; l++) { int num1 = pheader2->TraitBackNumber[SLE_BASIS], num2 = pheader2->TraitBackNumber[SLE_ADJUST]; temp = (TVecData *) SleBackList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x -= Bslex1; data->pList[m].y -= Bsley1; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = BSilSleRightUp1; else data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = BSilSleRightUp1; } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ // int num = pheader2->TraitBackNumber[SLE_ADJUST]; data->pList[num2] = BSilSleRightDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = BSilSleRightDown1; else data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = BSilSleRightDown1; /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = BSilSleRightCen2; data->pList[num2] = BSilSleRightCen; data->pList[num2-1] = BSilSleRightCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = BSilSleRightCen1; data->pList[num1] = BSilSleRightCen; data->pList[num1-1] = BSilSleRightCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = BSilSleRightCen1; data->pList[num2+3] = BSilSleRightCen; data->pList[num2+3-1] = BSilSleRightCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = BSilSleRightCen2; data->pList[num1+3] = BSilSleRightCen; data->pList[num1+3-1] = BSilSleRightCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultBackList->Add(data); } //============ ¿ÞÂÊ ½½¸®ºê ´ëÀÔ //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleFrontList->Count; l++) { int num1 = pheader2->TraitFrontNumber[SLE_BASIS], num2 = pheader2->TraitFrontNumber[SLE_ADJUST]; temp = (TVecData *) SleFrontList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x = 2*revx - data->pList[m].x - slex2; data->pList[m].y -= sley2; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = FSilSleLeftUp1; else data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = FSilSleLeftUp1; } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ data->pList[num2] = FSilSleLeftDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = FSilSleLeftDown1; else data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = FSilSleLeftDown1; /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = FSilSleLeftCen2; data->pList[num2] = FSilSleLeftCen; data->pList[num2-1] = FSilSleLeftCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = FSilSleLeftCen1; data->pList[num1] = FSilSleLeftCen; data->pList[num1-1] = FSilSleLeftCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = FSilSleLeftCen1; data->pList[num2+3] = FSilSleLeftCen; data->pList[num2+3-1] = FSilSleLeftCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = FSilSleLeftCen2; data->pList[num1+3] = FSilSleLeftCen; data->pList[num1+3-1] = FSilSleLeftCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < SleBackList->Count; l++) { int num1 = pheader2->TraitBackNumber[SLE_BASIS], num2 = pheader2->TraitBackNumber[SLE_ADJUST]; temp = (TVecData *) SleBackList->Items[l]; if (!temp->Equal(j+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x = 2*Brevx - data->pList[m].x - Bslex2; data->pList[m].y -= Bsley2; } if (data->TraitSet.Contains(SLE_BASIS)) { // ½½¸®ºê ±âÁØÁ¡ if ((num1>num2 && (num1-num2)==3) || (num1 == 0 && (num2-num1)!=3)) data->pList[num1 != 0 ? num1-1 : temp->nCount*3-1] = BSilSleLeftUp1; else data->pList[num1 != temp->nCount*3 ? num1+1 : 1] = BSilSleLeftUp1; } if (data->TraitSet.Contains(SLE_ADJUST)) { // ½½¸®ºê Á¶ÀýÁ¡ data->pList[num2] = BSilSleLeftDown; if (((num2>num1 && (num2-num1)==3) || (num2 == 0 && (num1-num2)!=3))) data->pList[num2 != 0 ? num2-1 : temp->nCount*3-1] = BSilSleLeftDown1; else data->pList[num2 != temp->nCount*3 ? num2+1 : 1] = BSilSleLeftDown1; /////////////////////// 3Points SilhouetteÀ϶§~ if (pheader->EMethod == DH_RAGLAN || pheader->EMethod == DH_3POINTS) { data->nCount++; data->pList = (DPOINT *)HeapReAlloc(GetProcessHeap(), 0, data->pList, sizeof(DPOINT)*(data->nCount*3+1)); data->pMask = (BYTE*)HeapReAlloc(GetProcessHeap(), 0, data->pMask, (data->nCount * 3 + 1) % 8 == 0 ? (data->nCount * 3 + 1) / 8 : (data->nCount * 3 + 1) / 8 + 1); HeapCompact(GetProcessHeap(), 0); if (abs(num1-num2) == 3) { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+1] = BSilSleLeftCen2; data->pList[num2] = BSilSleLeftCen; data->pList[num2-1] = BSilSleLeftCen1; }else { for (int m = data->nCount*3 -3; m > num1-2; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+1] = BSilSleLeftCen1; data->pList[num1] = BSilSleLeftCen; data->pList[num1-1] = BSilSleLeftCen2; } }else { if (num1 < num2) { for (int m = data->nCount*3 -3; m > num2+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num2+3+1] = BSilSleLeftCen1; data->pList[num2+3] = BSilSleLeftCen; data->pList[num2+3-1] = BSilSleLeftCen2; }else { for (int m = data->nCount*3 -3; m > num1+1; m--) { data->pList[m+3] = data->pList[m]; } data->pList[num1+3+1] = BSilSleLeftCen2; data->pList[num1+3] = BSilSleLeftCen; data->pList[num1+3-1] = BSilSleLeftCen1; } } } } SET_RECT; data->GroupIndex = GroupIndex; UpResultBackList->Add(data); } #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData->SetDataListByHeader(SO_TOPFULL, Count, UpResultFrontList, UpResultBackList); #endif } goto next; /////////////////////////////////////////////////////////////////////// CombiCollar: /////////////////////////////////////////////////////////////////////// for (int k = 0; k < ColHeaderList->Count; k++) { ProgressBar1->Position += 60/ColHeaderList->Count/SilHeaderList->Count+0.5; DPOINT FColLeft, FColRight, BColLeft, BColRight; double colx, coly, ratio, Bcolx, Bcoly, Bratio; Count++; pheader3 = (PSTYLEDATAFILEHEADER) ColHeaderList->Items[k]; //================= Ä®¶ó µ¥ÀÌÅÍ Ã£±â for (int l = 0; l < ColFrontList->Count; l++) { // ¾ÕÆÇ temp = (TVecData *) ColFrontList->Items[l]; if (!temp->Equal(k+1)) continue; if (temp->TraitSet.Contains(COL_COLLARLEFT)) { FColLeft = temp->pList[pheader3->TraitFrontNumber[COL_COLLARLEFT]]; colx = FColLeft.x - FSilColLeft.x; coly = FColLeft.y - FSilColLeft.y; } if (temp->TraitSet.Contains(COL_COLLARRIGHT)) FColRight = temp->pList[pheader3->TraitFrontNumber[COL_COLLARRIGHT]]; } for (int l = 0; l < ColBackList->Count; l++) { // µÞÆÇ temp = (TVecData *) ColBackList->Items[l]; if (!temp->Equal(k+1)) continue; if (temp->TraitSet.Contains(COL_COLLARLEFT)) { BColLeft = temp->pList[pheader3->TraitBackNumber[COL_COLLARLEFT]]; Bcolx = BColLeft.x - BSilColLeft.x; Bcoly = BColLeft.y - BSilColLeft.y; } if (temp->TraitSet.Contains(COL_COLLARRIGHT)) BColRight = temp->pList[pheader3->TraitBackNumber[COL_COLLARRIGHT]]; } //========= Collar ±æÀÌ¿Í ºñÀ² ±¸Çϱâ ColLength2 = sqrt((FColRight.x-FColLeft.x)*(FColRight.x-FColLeft.x)+(FColRight.y-FColLeft.y)*(FColRight.y-FColLeft.y)); BColLength2 = sqrt((BColRight.x-BColLeft.x)*(BColRight.x-BColLeft.x)+(BColRight.y-BColLeft.y)*(BColRight.y-BColLeft.y)); // ¡Ú¡Ú ³ªÁß¿¡ ÆíÁý±â¿¡¼­ ¼öÁ¤À» ºÁ¾ßÇÑ´Ù - by monkman if (ColLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } if (BColLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } ratio = ColLength1 / ColLength2; Bratio = BColLength1 / BColLength2; //=========== ÀÌÁ¦ºÎÅÍ ´ëÀÔ ½ÃÀÛ //=========== ½Ç·ç¿§ ´ëÀÔ for (int l = 0; l < SilFrontList->Count; l++) { temp = (TVecData *) SilFrontList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultFrontList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } for (int l = 0; l < SilBackList->Count; l++) { temp = (TVecData *) SilBackList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultBackList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); UpResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; UpperCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, SilFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, SilFrontList, SilBackList); CombiData->SetInfoByHeader(pheader3, ColFileList); CombiData->SetDataListByHeader(pheader3->Sort, k+1, ColFrontList, ColBackList); #endif //========= Collar ±æÀÌ¿Í ºñÀ² ±¸Çϱâ colx = FColLeft.x - FSilColLeft.x; coly = FColLeft.y - FSilColLeft.y; Bcolx = BColLeft.x - BSilColLeft.x; Bcoly = BColLeft.y - BSilColLeft.y; ColLength2 = sqrt((FColRight.x-FColLeft.x)*(FColRight.x-FColLeft.x)+(FColRight.y-FColLeft.y)*(FColRight.y-FColLeft.y)); BColLength2 = sqrt((BColRight.x-BColLeft.x)*(BColRight.x-BColLeft.x)+(BColRight.y-BColLeft.y)*(BColRight.y-BColLeft.y)); // ¡Ú¡Ú ³ªÁß¿¡ ÆíÁý±â¿¡¼­ ¼öÁ¤À» ºÁ¾ßÇÑ´Ù - by monkman if (ColLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } if (BColLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } ratio = ColLength1 / ColLength2; Bratio = BColLength1 / BColLength2; //============== Ä®¶ó ´ëÀÔ //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < ColFrontList->Count; l++) { temp = (TVecData *) ColFrontList->Items[l]; if (!temp->Equal(k+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); // TEXTBOX ¼öÁ¤½Ã ÀÌ ºÎºÐÀ» ¼öÁ¤ - by monkman if (data->Kind != V_TEXTBOX) { for (int m = 0; m < data->nCount*3 +1; m++) { data->pList[m].x = (data->pList[m].x - FColLeft.x) * ratio + FColLeft.x - colx; data->pList[m].y = (data->pList[m].y - FColLeft.y) * ratio + FColLeft.y - coly; } } // else { // for (int m = 0; m < 5; m++) { // data->pList[m].x = (data->pList[m].x - FColLeft.x) * ratio + FColLeft.x - colx; // data->pList[m].y = (data->pList[m].y - FColLeft.y) * ratio + FColLeft.y - coly; // } // } SET_RECT; data->GroupIndex = GroupIndex; UpResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < ColBackList->Count; l++) { temp = (TVecData *) ColBackList->Items[l]; if (!temp->Equal(k+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); // TEXTBOX ¼öÁ¤½Ã ÀÌ ºÎºÐÀ» ¼öÁ¤ - by monkman if (data->Kind != V_TEXTBOX) { for (int m = 0; m < data->nCount*3 +1; m++) { data->pList[m].x = (data->pList[m].x - BColLeft.x) * Bratio + BColLeft.x - Bcolx; data->pList[m].y = (data->pList[m].y - BColLeft.y) * Bratio + BColLeft.y - Bcoly; } } // else { // for (int m = 0; m < 5; m++) { // data->pList[m].x = (data->pList[m].x - BColLeft.x) * ratio + BColLeft.x - colx; // data->pList[m].y = (data->pList[m].y - BColLeft.y) * ratio + BColLeft.y - coly; // } // } SET_RECT; data->GroupIndex = GroupIndex; UpResultBackList->Add(data); } #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData->SetDataListByHeader(SO_TOPFULL, Count, UpResultFrontList, UpResultBackList); #endif } goto next; /////////////////////////////////////////////////////////////////////// CombiSilhouette: /////////////////////////////////////////////////////////////////////// //=========== ÀÌÁ¦ºÎÅÍ ´ëÀÔ ½ÃÀÛ Count++; //=========== ½Ç·ç¿§ ´ëÀÔ for (int l = 0; l < SilFrontList->Count; l++) { temp = (TVecData *) SilFrontList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultFrontList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } for (int l = 0; l < SilBackList->Count; l++) { temp = (TVecData *) SilBackList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; UpResultBackList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); UpResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; UpperCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, SilFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, SilFrontList, SilBackList); CombiData->SetDataListByHeader(SO_TOPFULL, Count, UpResultFrontList, UpResultBackList); #endif goto next; next: #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = NULL; #endif } UpCount = Count; // ¸Þ½ÃÁö : Á¶ÇÕÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù. if (bRaglanFail && !Count) ShowMessage(IDS_COMBIINVALID); return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::MakeLowerData() { PSTYLEDATAFILEHEADER pheader, pheader2, pheader3, pheader4; TVecData *data, *temp; int Count = 0, GroupIndex; #ifdef WORKSHEET TCombinationData *CombiData = NULL; #endif GroupIndexState = 0; for (int i = 0; i < FullHeaderList->Count; i++) { // Á¶°Ç ºÎÇÕ FullStyle¸ÕÀú ¹è¿­ Count++; pheader = (PSTYLEDATAFILEHEADER) FullHeaderList->Items[i]; for (int k = 0; k < FullFrontList->Count; k++) { temp = (TVecData *) FullFrontList->Items[k]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); DownResultFrontList->Add(data); } for (int k = 0; k < FullBackList->Count; k++) { temp = (TVecData *) FullBackList->Items[k]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); DownResultBackList->Add(data); } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); DownResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; LowerCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, FullFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, FullFrontList, FullBackList); #endif } for (int i = 0; i < PantsHeaderList->Count; i++) { ProgressBar1->Position = 20+60*(i+1)/PantsHeaderList->Count; double BeltLength1, BeltLength2, BBeltLength1, BBeltLength2; DPOINT FCenter, FPantsBeltLeft, FPantsBeltRight; DPOINT BCenter, BPantsBeltLeft, BPantsBeltRight; pheader = (PSTYLEDATAFILEHEADER) PantsHeaderList->Items[i]; //================== ¾ÕÆÇ PantsÀÇ data ã±â for (int j = 0; j < PantsFrontList->Count; j++) { // center, trait ã±â temp = (TVecData *) PantsFrontList->Items[j]; if (!temp->Equal(i+1)) continue; if (temp->TraitSet.Contains(SIL_CENTER)) { FCenter = temp->pList[pheader->TraitFrontNumber[SIL_CENTER]]; } if (temp->TraitSet.Contains(SIL_BELTLEFT)) { FPantsBeltLeft = temp->pList[pheader->TraitFrontNumber[SIL_BELTLEFT]]; } if (temp->TraitSet.Contains(SIL_BELTRIGHT)) { FPantsBeltRight = temp->pList[pheader->TraitFrontNumber[SIL_BELTRIGHT]]; } } //================== µÞÆÇ PantsÀÇ data ã±â for (int j = 0; j < PantsBackList->Count; j++) { // center, trait ã±â temp = (TVecData *) PantsBackList->Items[j]; if (!temp->Equal(i+1)) continue; if (temp->TraitSet.Contains(SIL_CENTER)) { BCenter = temp->pList[pheader->TraitBackNumber[SIL_CENTER]]; } if (temp->TraitSet.Contains(SIL_BELTLEFT)) { BPantsBeltLeft = temp->pList[pheader->TraitBackNumber[SIL_BELTLEFT]]; } if (temp->TraitSet.Contains(SIL_BELTRIGHT)) { BPantsBeltRight = temp->pList[pheader->TraitBackNumber[SIL_BELTRIGHT]]; } } if (pheader->bBelt) goto CombiAll; else goto CombiPants; /////////////////////////////////////////////////////////////////////// CombiAll: /////////////////////////////////////////////////////////////////////// //============ À̵¿(º¸Á¤)¼öÄ¡¿Í Ä®¶óÀÇ È®´ë/Ãà¼Ò ºñÀ²À» À§ÇÑ ±æÀÌ ±¸Çϱâ BeltLength1 = sqrt((FPantsBeltRight.x-FPantsBeltLeft.x)*(FPantsBeltRight.x-FPantsBeltLeft.x)+(FPantsBeltRight.y-FPantsBeltLeft.y)*(FPantsBeltRight.y-FPantsBeltLeft.y)); BBeltLength1 = sqrt((BPantsBeltRight.x-BPantsBeltLeft.x)*(BPantsBeltRight.x-BPantsBeltLeft.x)+(BPantsBeltRight.y-BPantsBeltLeft.y)*(BPantsBeltRight.y-BPantsBeltLeft.y)); for (int k = 0; k < BeltHeaderList->Count; k++) { ProgressBar1->Position += 60/BeltHeaderList->Count/PantsHeaderList->Count+0.5; DPOINT FBeltLeft, FBeltRight, BBeltLeft, BBeltRight; double beltx, belty, ratio, Bbeltx, Bbelty, Bratio; Count++; pheader3 = (PSTYLEDATAFILEHEADER) BeltHeaderList->Items[k]; ////================= º§Æ® µ¥ÀÌÅÍ Ã£±â for (int l = 0; l < BeltFrontList->Count; l++) { // ¾ÕÆÇ temp = (TVecData *) BeltFrontList->Items[l]; if (!temp->Equal(k+1)) continue; if (temp->TraitSet.Contains(BELT_BELTLEFT)) { FBeltLeft = temp->pList[pheader3->TraitFrontNumber[BELT_BELTLEFT]]; beltx = FBeltLeft.x - FPantsBeltLeft.x; belty = FBeltLeft.y - FPantsBeltLeft.y; } if (temp->TraitSet.Contains(BELT_BELTRIGHT)) FBeltRight = temp->pList[pheader3->TraitFrontNumber[BELT_BELTRIGHT]]; } for (int l = 0; l < BeltBackList->Count; l++) { // µÞÆÇ temp = (TVecData *) BeltBackList->Items[l]; if (!temp->Equal(k+1)) continue; if (temp->TraitSet.Contains(BELT_BELTLEFT)) { BBeltLeft = temp->pList[pheader3->TraitBackNumber[BELT_BELTLEFT]]; Bbeltx = BBeltLeft.x - BPantsBeltLeft.x; Bbelty = BBeltLeft.y - BPantsBeltLeft.y; } if (temp->TraitSet.Contains(BELT_BELTRIGHT)) BBeltRight = temp->pList[pheader3->TraitBackNumber[BELT_BELTRIGHT]]; } //========= Belt ±æÀÌ¿Í ºñÀ² ±¸Çϱâ BeltLength2 = sqrt((FBeltRight.x-FBeltLeft.x)*(FBeltRight.x-FBeltLeft.x)+(FBeltRight.y-FBeltLeft.y)*(FBeltRight.y-FBeltLeft.y)); BBeltLength2 = sqrt((BBeltRight.x-BBeltLeft.x)*(BBeltRight.x-BBeltLeft.x)+(BBeltRight.y-BBeltLeft.y)*(BBeltRight.y-BBeltLeft.y)); // ¡Ú¡Ú ³ªÁß¿¡ ÆíÁý±â¿¡¼­ ¼öÁ¤À» ºÁ¾ßÇÑ´Ù - by monkman if (BeltLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } if (BBeltLength2 == 0) { MessageDlg(L"It is wrong data", mtError, TMsgDlgButtons() << mbOK, 0); return; } ratio = BeltLength1 / BeltLength2; Bratio = BBeltLength1 / BBeltLength2; //=========== ÀÌÁ¦ºÎÅÍ ´ëÀÔ ½ÃÀÛ //=========== ½Ç·ç¿§ ´ëÀÔ for (int l = 0; l < PantsFrontList->Count; l++) { temp = (TVecData *) PantsFrontList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; DownResultFrontList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } for (int l = 0; l < PantsBackList->Count; l++) { temp = (TVecData *) PantsBackList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; DownResultBackList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); DownResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; LowerCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, PantsFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, PantsFrontList, PantsBackList); CombiData->SetInfoByHeader(pheader3, BeltFileList); CombiData->SetDataListByHeader(pheader3->Sort, k+1, BeltFrontList, BeltBackList); #endif ////============== º§Æ® ´ëÀÔ //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < BeltFrontList->Count; l++) { temp = (TVecData *) BeltFrontList->Items[l]; if (!temp->Equal(k+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x = (data->pList[m].x - FBeltLeft.x)*ratio + FBeltLeft.x - beltx; data->pList[m].y = (data->pList[m].y - FBeltLeft.y)*ratio + FBeltLeft.y - belty; } SET_RECT; data->GroupIndex = GroupIndex; DownResultFrontList->Add(data); } //GroupIndex = AvailableGroupIndex(UpResultFrontList, Count); GroupIndex = AvailableGroupIndex(); //by siuaa 080507 for (int l = 0; l < BeltBackList->Count; l++) { temp = (TVecData *) BeltBackList->Items[l]; if (!temp->Equal(k+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); for (int m = 0; m < data->nCount*3+1; m++) { data->pList[m].x = (data->pList[m].x - BBeltLeft.x)*Bratio + BBeltLeft.x - Bbeltx; data->pList[m].y = (data->pList[m].y - BBeltLeft.y)*Bratio + BBeltLeft.y - Bbelty; } SET_RECT; data->GroupIndex = GroupIndex; DownResultBackList->Add(data); } #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData->SetDataListByHeader(SO_BOTTOMFULL, Count, DownResultFrontList, DownResultBackList); #endif } goto next; /////////////////////////////////////////////////////////////////////// CombiPants: /////////////////////////////////////////////////////////////////////// Count++; //=========== ½Ç·ç¿§ ´ëÀÔ for (int l = 0; l < PantsFrontList->Count; l++) { temp = (TVecData *) PantsFrontList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; DownResultFrontList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } for (int l = 0; l < PantsBackList->Count; l++) { temp = (TVecData *) PantsBackList->Items[l]; if (!temp->Equal(i+1)) continue; if ((data = new TVecData(Count))==NULL) goto fail; data->Copy(temp); SET_RECT; DownResultBackList->Add(data); if(GroupIndexState < data->GroupIndex) GroupIndexState = data->GroupIndex; } pheader4 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader4, *pheader); DownResultHeaderList->Add(pheader4); #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = new TCombinationData; LowerCombinationList->Add(CombiData); CombiData->SetInfoByHeader(pheader, PantsFileList); CombiData->SetDataListByHeader(pheader->Sort, i+1, PantsFrontList, PantsBackList); CombiData->SetDataListByHeader(SO_BOTTOMFULL, Count, DownResultFrontList, DownResultBackList); #endif goto next; next: #ifdef WORKSHEET // ÀÛ¾÷Áö½Ã¼­ - by monkman (2010.12.22) CombiData = NULL; #endif } DownCount = Count; return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::MakeTagData() { TFileInfor *fi; HDC dcTemp; if (rbUp->Checked) { for (int i = 0; i < UpCount; i++) { ProgressBar1->Position = 80+20*(i+1)/UpCount; fi = new TFileInfor; fi->Depth = i; if ((fi->tBitmap = new TTexpiaBitmap) == NULL) goto fail; fi->tBitmap->Create(80, 100, 24); fi->tBitmap->FillRect(Rect(0, 0, 80, 100), clWhite); if ((dcTemp = fi->tBitmap->CreateDC()) == NULL) goto fail; CombiForm->TagDraw(dcTemp, UpResultFrontList, i+1, 0, 0, 80, 100); fi->tBitmap->DeleteDC(dcTemp); dcTemp = NULL; UpImageList->Add(fi); } }else if (rbDown->Checked) { for (int i = 0; i < DownCount; i++) { ProgressBar1->Position = 80+20*(i+1)/DownCount; fi = new TFileInfor; fi->Depth = i; if ((fi->tBitmap = new TTexpiaBitmap) == NULL) goto fail; fi->tBitmap->Create(80, 100, 24); fi->tBitmap->FillRect(Rect(0, 0, 80, 100), clWhite); if ((dcTemp = fi->tBitmap->CreateDC()) == NULL) goto fail; CombiForm->TagDraw(dcTemp, DownResultFrontList, i+1, 0, 0, 80, 100); fi->tBitmap->DeleteDC(dcTemp); dcTemp = NULL; DownImageList->Add(fi); } } return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { TFileInfor *fi; HDC hDC = NULL; TRect r; TList *list; String text; if (rbUp->Checked) { list = UpImageList; }else if (rbDown->Checked) { list = DownImageList; }else if (rbCheck->Checked) { list = CheckImageList; }else return; if ((ARow*2+ACol) < list->Count && list->Count) { fi = (TFileInfor *) list->Items[ARow*2 + ACol]; if ((hDC = fi->tBitmap->CreateDC()) == NULL) goto fail; BitBlt(StringGrid1->Canvas->Handle, Rect.Left+5, Rect.Top+5, fi->tBitmap->Width, fi->tBitmap->Height, hDC, 0, 0, SRCCOPY); fi->tBitmap->DeleteDC(hDC); text = String(ARow*2+ACol+1); r.Left = Rect.Left+5; r.Top = Rect.Top+110; r.Right = Rect.Left+85; r.Bottom = Rect.Top+130; if (rbCheck->Checked) { if (ARow*2+ACol+1 == SelectedUp) text += " Check 1"; else if (ARow*2+ACol+1 == SelectedDown) text += " Check 2"; } StringGrid1->Canvas->TextRect(r, Rect.Left+5, Rect.Top+115, text); } fail: } //--------------------------------------------------------------------------- void __fastcall TResultForm::PaintBoxMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { #ifdef WORKSHEET if (Button == mbLeft) { ptPaintBoxPos.x = X; ptPaintBoxPos.y = Y; edForMaterialFocus->SetFocus(); } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::PaintBoxMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { #ifdef WORKSHEET TPaintBox *PaintBox = NULL; TVecData *data = NULL; TCombinationData *CombiData = NULL; int nResultIndex = 0, nListIndex = 0, nInstanceIndex = 0; POINT ptDiff, ptArbitrary; TList *CombinationList = NULL, *ResultList = NULL; // °á°ú ¸®½ºÆ® if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; PaintBox = dynamic_cast(Sender); if (Shift.Contains(ssLeft)) { if (PaintBox && 0 <= ptPaintBoxPos.x && ptPaintBoxPos.x < PaintBox->Width && 0 <= ptPaintBoxPos.y && ptPaintBoxPos.y < PaintBox->Height) { // °á°ú ¸®½ºÆ® ã±â if (rbUp->Checked == true) { if (PageFront->ActivePage == TabFront) ResultList = UpResultFrontList; else if (PageFront->ActivePage == TabBack) ResultList = UpResultBackList; } else if (rbDown->Checked == true) { if (PageFront->ActivePage == TabFront) ResultList = DownResultFrontList; else if (PageFront->ActivePage == TabBack) ResultList = DownResultBackList; } else if (rbCheck->Checked == true) { if (PageFront->ActivePage == TabFront) ResultList = CheckResultFrontList; else if (PageFront->ActivePage == TabBack) ResultList = CheckResultBackList; } // À̵¿°Å¸® °è»ê ptDiff = VecDraw->GetArbitraryPosition(ResultList, PaintBox->Width, PaintBox->Height, -1, 0.0, X - ptPaintBoxPos.x, Y - ptPaintBoxPos.y); if (CombinationList && CombiIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nResultIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nListIndex = CombiData->MaterialLayerOrder[strgrdCell->Col]; if (0 <= nListIndex && nListIndex < CELL_COUNT) { nInstanceIndex = nResultIndex + nListIndex; for (int j = 0; j < ResultList->Count; j++) { // SET_RECT¸¦ ÀÌ¿ëÇϱâ À§ÇØ iterator º¯¼ö¸¦ j·Î ÇØ¾ßÇÔ - by monkman (2011.02.18) data = (TVecData *)ResultList->Items[j]; if (data->Equal(nInstanceIndex)) { if (data->Kind == V_CURVE) { for (int k = 0; k < data->nCount*3+1; k++) { // SET_RECT¸¦ ÀÌ¿ëÇϱâ À§ÇØ iterator º¯¼ö¸¦ k·Î ÇØ¾ßÇÔ - by monkman (2011.02.18) data->pList[k].x += ptDiff.x; data->pList[k].y += ptDiff.y; } SET_RECT; } } } } } } ptPaintBoxPos.x = X; ptPaintBoxPos.y = Y; PaintBox->Repaint(); } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::PaintBoxMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { #ifdef WORKSHEET if (Button == mbLeft) { if (PageFront->ActivePage == TabFront) PaintBox1->Repaint(); else PaintBox2->Repaint(); } ptPaintBoxPos.x = -1; ptPaintBoxPos.y = -1; #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::PaintBox1Paint(TObject *Sender) { double Zoom = 0; TList *ResultList = NULL, *ResultSelectedList = NULL; int nInstNum, nResultIndex, nMaterialIndexBegin, nMaterialIndexEnd; TVecData *data = NULL; if (rbUp->Checked) ResultList = UpResultFrontList; else if (rbDown->Checked) ResultList = DownResultFrontList; else if (rbCheck->Checked) ResultList = CheckResultFrontList; nResultIndex = row*2+col+1; #ifndef WORKSHEET if (ResultList) { //VecDraw->ArbitraryDraw(PaintBox1->Canvas->Handle, ResultList, PaintBox1->Width, PaintBox1->Height, nResultIndex, 0.0); // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) VecDraw->DrawVector(PaintBox1->Canvas->Handle, ResultList, nResultIndex, 0, 0, PaintBox1->Width, PaintBox1->Height, 0.0, true); } #else if (ResultList) { ResultSelectedList = new TList; if (ResultSelectedList) { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT; for (int i = 0; i < ResultList->Count; i++) { data = (TVecData *)ResultList->Items[i]; if (data) { nInstNum = data->GetInstNum(); if (nInstNum == nResultIndex || (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd)) ResultSelectedList->Add(data); } } //VecDraw->ArbitraryDraw(PaintBox1->Canvas->Handle, ResultSelectedList, PaintBox1->Width, PaintBox1->Height, -1, 0.0); // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) VecDraw->DrawVector(PaintBox1->Canvas->Handle, ResultSelectedList, -1, 0, 0, PaintBox1->Width, PaintBox1->Height, 0.0, true); } delete ResultSelectedList; // µ¥ÀÌÅ͸¦ º¹»çÇÑ °ÍÀÌ ¾Æ´Ï¹Ç·Î ±×³É Áö¿ì¸é µÈ´Ù } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::PaintBox2Paint(TObject *Sender) { double Zoom = 0; TList *ResultList = NULL, *ResultSelectedList = NULL; int nInstNum, nResultIndex, nMaterialIndexBegin, nMaterialIndexEnd; TVecData *data = NULL; if (rbUp->Checked) ResultList = UpResultBackList; else if (rbDown->Checked) ResultList = DownResultBackList; else if (rbCheck->Checked) ResultList = CheckResultBackList; nResultIndex = row*2+col+1; #ifndef WORKSHEET //if (ResultList) VecDraw->ArbitraryDraw(PaintBox2->Canvas->Handle, ResultList, PaintBox2->Width, PaintBox2->Height, nResultIndex, 0.0); // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) VecDraw->DrawVector(PaintBox2->Canvas->Handle, ResultList, nResultIndex, 0, 0, PaintBox2->Width, PaintBox2->Height, 0.0, true); #else if (ResultList) { ResultSelectedList = new TList; if (ResultSelectedList) { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT; for (int i = 0; i < ResultList->Count; i++) { data = (TVecData *)ResultList->Items[i]; if (data) { nInstNum = data->GetInstNum(); if (nInstNum == nResultIndex || (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd)) ResultSelectedList->Add(data); } } //VecDraw->ArbitraryDraw(PaintBox2->Canvas->Handle, ResultSelectedList, PaintBox2->Width, PaintBox2->Height, -1, 0.0); // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) VecDraw->DrawVector(PaintBox2->Canvas->Handle, ResultSelectedList, -1, 0, 0, PaintBox2->Width, PaintBox2->Height, 0.0, true); } delete ResultSelectedList; // µ¥ÀÌÅ͸¦ º¹»çÇÑ °ÍÀÌ ¾Æ´Ï¹Ç·Î ±×³É Áö¿ì¸é µÈ´Ù } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::PopupOpenClick(TObject *Sender) { TMainImageForm *Child = NULL; TPException ec = EC_NONE; TPCanvasInfor CanvasInfor; PSTYLEDATAFILEHEADER pheader, pheader2; // Ä«ÇÇ¿ë TList *ResultList = NULL, *OpenList = NULL; TVecData *data = NULL; int nInstNum, nMaterialIndexBegin, nMaterialIndexEnd; // CombiResult ½ÇÇà ÈÄ ´õºíŬ¸¯½Ã ¹ß»ýÇÏ´Â ¿¡·¯ ¼öÁ¤ - by monkman (2010.12,30) if (rbUp->Checked == false && rbDown->Checked == false && rbCheck->Checked == false) return; if (rbUp->Checked && UpImageList->Count < row*2+col+1) return; if (rbDown->Checked && DownImageList->Count < row*2+col+1) return; if (rbCheck->Checked && CheckImageList->Count < row*2+col+1) return; if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ if (rbUp->Checked) ResultList = UpResultFrontList; else if (rbDown->Checked) ResultList = DownResultFrontList; else if (rbCheck->Checked) ResultList = CheckResultFrontList; } else { if (rbUp->Checked) ResultList = UpResultBackList; else if (rbDown->Checked) ResultList = DownResultBackList; else if (rbCheck->Checked) ResultList = CheckResultBackList; } OpenList = new TList; if (OpenList == NULL) goto fail; for (int i = 0; i < ResultList->Count; i++) { data = (TVecData *)ResultList->Items[i]; nInstNum = data->GetInstNum(); if (nInstNum == row*2+col+1) OpenList->Add(data); } #ifdef WORKSHEET // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT - 1; for (int i = 0; i < ResultList->Count; i++) { data = (TVecData *)ResultList->Items[i]; nInstNum = data->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) OpenList->Add(data); } #endif VecDraw->InitCombiRead(OpenList, CanvasInfor, -1); CanvasInfor.DotsPerInch = 160; CanvasInfor.SizeType = cstFree; CanvasInfor.Width += MARGIN_X*2; CanvasInfor.Height += MARGIN_Y*2; // ·¹À̾ ÆÄÀÏ·Î ÀúÀåµÉ¶§ ÀÛ¾÷±¸¿ªÀº ÀúÀåÀÌ µÇÁö ¾Ê±â ¶§¹®¿¡ // ½ÇÁ¦ ÀÛ¾÷±¸¿ªÀº ´«¿¡ º¸ÀÌÁö ¾ÊÁö¸¸ ³²¾ÆÀÖ´Â °æ¿ì°¡ µÈ´Ù - by monkman (2005.06.16) //if (MainImageForm) MainImageForm->iMainImage->Deactivate(); if ((Child = new TMainImageForm(Application))==NULL) { ec = EC_FORM_NOT_CREATE; goto fail; } if ((ec = Child->InitForm2(CanvasInfor, 24))!=EC_NONE) goto fail; Child->StyleDivision = int(CombiForm->Division); Child->StyleType = int(CombiForm->MainType); // PaletteForm->FormActivateCOLOR(); if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ if (rbUp->Checked) { VecDraw->InitCombiMerge(OpenList, -1, true, false); pheader = (PSTYLEDATAFILEHEADER) UpResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); Child->StyleHeader->Add(pheader2); }else if (rbDown->Checked) { VecDraw->InitCombiMerge(OpenList, -1, true, false); pheader = (PSTYLEDATAFILEHEADER) DownResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); Child->StyleHeader->Add(pheader2); }else if (rbCheck->Checked) { VecDraw->InitCombiMerge(OpenList, -1, true, false); pheader = (PSTYLEDATAFILEHEADER) CheckResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); Child->StyleHeader->Add(pheader2); } }else { if (rbUp->Checked) { VecDraw->InitCombiMerge(OpenList, -1, true, true); pheader = (PSTYLEDATAFILEHEADER) UpResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); Child->StyleHeader->Add(pheader2); }else if (rbDown->Checked) { VecDraw->InitCombiMerge(OpenList, -11, true, true); pheader = (PSTYLEDATAFILEHEADER) DownResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); Child->StyleHeader->Add(pheader2); }else if (rbCheck->Checked) { VecDraw->InitCombiMerge(OpenList, -1, true, true); pheader = (PSTYLEDATAFILEHEADER) CheckResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); Child->StyleHeader->Add(pheader2); } } // String DirName, FileName; // TGraphicFileFormat ExtIndex; // WORD bpp; if (OpenList) delete OpenList; OpenList = NULL; Show(); return; fail: if (OpenList) delete OpenList; if (Child) delete Child; OpenList = NULL; return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::PopupMergeClick(TObject *Sender) { PSTYLEDATAFILEHEADER pheader, pheader2; // Ä«ÇÇ¿ë TList *ResultList = NULL, *OpenList = NULL; TVecData *data = NULL; int nInstNum, nMaterialIndexBegin, nMaterialIndexEnd; if (rbUp->Checked && UpImageList->Count < row*2+col+1) return; if (rbDown->Checked && DownImageList->Count < row*2+col+1) return; if (rbCheck->Checked && CheckImageList->Count < row*2+col+1) return; if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ if (rbUp->Checked) ResultList = UpResultFrontList; else if (rbDown->Checked) ResultList = DownResultFrontList; else if (rbCheck->Checked) ResultList = CheckResultFrontList; } else { if (rbUp->Checked) ResultList = UpResultBackList; else if (rbDown->Checked) ResultList = DownResultBackList; else if (rbCheck->Checked) ResultList = CheckResultBackList; } OpenList = new TList; if (OpenList == NULL) goto fail; for (int i = 0; i < ResultList->Count; i++) { data = (TVecData *)ResultList->Items[i]; nInstNum = data->GetInstNum(); if (nInstNum == row*2+col+1) OpenList->Add(data); } #ifdef WORKSHEET // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT - 1; for (int i = 0; i < ResultList->Count; i++) { data = (TVecData *)ResultList->Items[i]; nInstNum = data->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) OpenList->Add(data); } #endif if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ if (rbUp->Checked) { VecDraw->InitCombiMerge(OpenList, -1, false, false); pheader = (PSTYLEDATAFILEHEADER) UpResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); MainImageForm->StyleHeader->Add(pheader2); }else if (rbDown->Checked) { VecDraw->InitCombiMerge(OpenList, -1, false, false); pheader = (PSTYLEDATAFILEHEADER) DownResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); MainImageForm->StyleHeader->Add(pheader2); }else if (rbCheck->Checked) { VecDraw->InitCombiMerge(OpenList, -1, false, false); pheader = (PSTYLEDATAFILEHEADER) CheckResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); MainImageForm->StyleHeader->Add(pheader2); } }else { if (rbUp->Checked) { VecDraw->InitCombiMerge(OpenList, -1, false, true); pheader = (PSTYLEDATAFILEHEADER) UpResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); MainImageForm->StyleHeader->Add(pheader2); }else if (rbDown->Checked) { VecDraw->InitCombiMerge(OpenList, -1, false, true); pheader = (PSTYLEDATAFILEHEADER) DownResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); MainImageForm->StyleHeader->Add(pheader2); }else if (rbCheck->Checked) { VecDraw->InitCombiMerge(OpenList, -1, false, true); pheader = (PSTYLEDATAFILEHEADER) CheckResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); MainImageForm->StyleHeader->Add(pheader2); } } MainImageForm->StyleDivision = int(CombiForm->Division); MainImageForm->StyleType = int(CombiForm->MainType); if (OpenList) delete OpenList; OpenList = NULL; return; fail: if (OpenList) delete OpenList; OpenList = NULL; return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::PopupCheckClick(TObject *Sender) { TVecData *data, *temp; PSTYLEDATAFILEHEADER pheader, pheader2; // Ä«ÇÇ¿ë bool sw = true; TFileInfor *fi; HDC dcTemp; #ifdef WORKSHEET TCombinationData *SrcCombiData = NULL, *DstCombiData = NULL; TList *CombinationList = NULL, *FrontList = NULL, *BackList = NULL; int nIndex = 0, nMaterialIndex, nMaterialIndexBegin, nMaterialIndexEnd, nInstNum; #endif if (rbUp->Checked && UpImageList->Count < row*2+col+1) return; if (rbDown->Checked && DownImageList->Count < row*2+col+1) return; if (rbUp->Checked) { for (int i = 0; i < UpResultFrontList->Count; i++) { temp = (TVecData *) UpResultFrontList->Items[i]; if (!temp->Equal(row*2+col+1)) continue; if (sw) { CheckCount++; sw = false; } if ((data = new TVecData(CheckCount))==NULL) goto fail; data->Copy(temp); CheckResultFrontList->Add(data); } for (int i = 0; i < UpResultBackList->Count; i++) { temp = (TVecData *) UpResultBackList->Items[i]; if (!temp->Equal(row*2+col+1)) continue; if ((data = new TVecData(CheckCount))==NULL) goto fail; data->Copy(temp); CheckResultBackList->Add(data); } pheader = (PSTYLEDATAFILEHEADER) UpResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); CheckResultHeaderList->Add(pheader2); }else if (rbDown->Checked) { for (int i = 0; i < DownResultFrontList->Count; i++) { temp = (TVecData *) DownResultFrontList->Items[i]; if (!temp->Equal(row*2+col+1)) continue; if (sw) { CheckCount++; sw = false; } if ((data = new TVecData(CheckCount))==NULL) goto fail; data->Copy(temp); CheckResultFrontList->Add(data); } for (int i = 0; i < DownResultBackList->Count; i++) { temp = (TVecData *) DownResultBackList->Items[i]; if (!temp->Equal(row*2+col+1)) continue; if ((data = new TVecData(CheckCount))==NULL) goto fail; data->Copy(temp); CheckResultBackList->Add(data); } pheader = (PSTYLEDATAFILEHEADER) DownResultHeaderList->Items[row*2+col]; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); CheckResultHeaderList->Add(pheader2); }else { } if (!sw) { fi = new TFileInfor; fi->Depth = CheckCount; if ((fi->tBitmap = new TTexpiaBitmap) == NULL) goto fail; fi->tBitmap->Create(80, 100, 24); fi->tBitmap->FillRect(Rect(0, 0, 80, 100), clWhite); if ((dcTemp = fi->tBitmap->CreateDC()) == NULL) goto fail; CombiForm->TagDraw(dcTemp, CheckResultFrontList, CheckCount, 0, 0, 80, 100); fi->tBitmap->DeleteDC(dcTemp); dcTemp = NULL; CheckImageList->Add(fi); } #ifdef WORKSHEET nIndex = StringGrid1->ColCount * row + col; if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; if (CombinationList && nIndex < CombinationList->Count) { SrcCombiData = (TCombinationData *)CombinationList->Items[nIndex]; DstCombiData = new TCombinationData; if (SrcCombiData && DstCombiData) { DstCombiData->CopyFrom(SrcCombiData); CheckCombinationList->Add(DstCombiData); // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT; nMaterialIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (CheckCount-1) * CELL_COUNT; if (rbUp->Checked) { FrontList = UpResultFrontList; BackList = UpResultBackList; } else if (rbDown->Checked) { FrontList = DownResultFrontList; BackList = DownResultBackList; } for (int i = 0; i < FrontList->Count; i++) { temp = (TVecData *) FrontList->Items[i]; nInstNum = temp->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { if ((data = new TVecData(nMaterialIndex + (nInstNum - nMaterialIndexBegin)))==NULL) goto fail; // InstanceNumber¸¦ Àß °è»êÇØ¾ß ÇÑ´Ù data->Copy(temp); CheckResultFrontList->Add(data); } } for (int i = 0; i < BackList->Count; i++) { temp = (TVecData *) BackList->Items[i]; nInstNum = temp->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { if ((data = new TVecData(nMaterialIndex + (nInstNum - nMaterialIndexBegin)))==NULL) goto fail; // InstanceNumber¸¦ Àß °è»êÇØ¾ß ÇÑ´Ù data->Copy(temp); CheckResultBackList->Add(data); } } } else { if (DstCombiData) delete DstCombiData; } } DstCombiData = NULL; #endif return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::PopupDelete2Click(TObject *Sender) { TVecData *data; PSTYLEDATAFILEHEADER pheader; TFileInfor *fi; #ifdef WORKSHEET TCombinationData *CombiData = NULL; TList *CombinationList = NULL; int nIndex = 0, nInstNum, nMaterialIndexBegin, nMaterialIndexEnd; #endif if (rbCheck->Checked && CheckImageList->Count < row*2+col+1) return; for (int i = 0; i < CheckResultFrontList->Count; i++) { data = (TVecData *) CheckResultFrontList->Items[i]; if (!data->Equal(row*2+col+1)) continue; CheckResultFrontList->Delete(i); delete data; data = NULL; i--; } for (int i = 0; i < CheckResultBackList->Count; i++) { data = (TVecData *) CheckResultBackList->Items[i]; if (!data->Equal(row*2+col+1)) continue; CheckResultBackList->Delete(i); delete data; data = NULL; i--; } for (int i = row*2+col+1; i < CheckResultHeaderList->Count; i++) { for (int j = 0; j < CheckResultFrontList->Count; j++) { data = (TVecData *) CheckResultFrontList->Items[j]; if (!data->Equal(i+1)) continue; data->Set(i); } for (int j = 0; j < CheckResultBackList->Count; j++) { data = (TVecData *) CheckResultBackList->Items[j]; if (!data->Equal(i+1)) continue; data->Set(i); } } pheader = (PSTYLEDATAFILEHEADER)CheckResultHeaderList->Items[row*2+col]; delete pheader; CheckResultHeaderList->Remove(pheader); CheckCount--; fi = (TFileInfor *) CheckImageList->Items[row*2+col]; if (fi->tBitmap) { delete fi->tBitmap; fi->tBitmap = NULL; } CheckImageList->Remove(fi); delete fi; fi = NULL; #ifdef WORKSHEET nIndex = StringGrid1->ColCount * row + col; if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; if (CombinationList && nIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[nIndex]; CombinationList->Delete(nIndex); if (CombiData) delete CombiData; } CombiData = NULL; // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT; for (int i = 0; i < CheckResultFrontList->Count; i++) { data = (TVecData *) CheckResultFrontList->Items[i]; nInstNum = data->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { CheckResultFrontList->Delete(i); if (data) delete data; data = NULL; i--; } } for (int i = 0; i < CheckResultBackList->Count; i++) { data = (TVecData *) CheckResultBackList->Items[i]; nInstNum = data->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { CheckResultBackList->Delete(i); delete data; data = NULL; i--; } } for (int i = row*2+col+1; i < CheckResultHeaderList->Count; i++) { for (int j = 0; j < CheckResultFrontList->Count; j++) { data = (TVecData *) CheckResultFrontList->Items[j]; nInstNum = data->GetInstNum(); if (nMaterialIndexEnd <= nInstNum) data->Set(nInstNum - CELL_COUNT); } for (int j = 0; j < CheckResultBackList->Count; j++) { data = (TVecData *) CheckResultBackList->Items[j]; nInstNum = data->GetInstNum(); if (nMaterialIndexEnd <= nInstNum) data->Set(nInstNum - CELL_COUNT); } } #endif PaintBox1->Repaint(); PaintBox2->Repaint(); StringGrid1->Repaint(); strgrdCell->Repaint(); if (0 < CheckCount) btCheckSave->Enabled = true; else btCheckSave->Enabled = false; return; fail: return; } //--------------------------------------------------------------------------- void __fastcall TResultForm::StringGrid1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TGridCoord grid = StringGrid1->MouseCoord(X, Y); #ifdef WORKSHEET CombiIndex = (StringGrid1->ColCount * row) + col; // ¿©±â¼­ °áÁ¤ÇØÁÖ¾î¾ß Á¦´ë·Î strgrdCell°¡ Á¦´ë·Î ±×·ÁÁø´Ù - by monkman (2011.02.07) #endif if (Button != mbRight) return; col = grid.X; row = grid.Y; PaintBox1->Repaint(); PaintBox2->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TResultForm::StringGrid1SelectCell(TObject *Sender, int ACol, int ARow, bool &CanSelect) { #ifdef WORKSHEET CombiIndex = (StringGrid1->ColCount * ARow) + ACol; // ¿©±â¼­ °áÁ¤ÇØÁÖ¾î¾ß Á¦´ë·Î strgrdCell°¡ Á¦´ë·Î ±×·ÁÁø´Ù - by monkman (2011.02.07) // ¼±ÅÃµÈ Á¶ÇÕ°á°ú¹°ÀÇ Çì´õ¸¦ ÀÌ¿ëÇÏ¿© ºÎÀÚÀç °Ë»ö¿¡ ÀÌ¿ëÇÑ´Ù - by monkman (2011.01.25) if (rbUp->Checked == true && 0 <= CombiIndex && CombiIndex < UpResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)UpResultHeaderList->Items[CombiIndex]; } else if (rbDown->Checked == true && 0 <= CombiIndex && CombiIndex < DownResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)DownResultHeaderList->Items[CombiIndex]; } else if (rbCheck->Checked == true && 0 <= CombiIndex && CombiIndex < CheckResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)CheckResultHeaderList->Items[CombiIndex]; SetMaterialComboBox(); // ¾î¶°ÇÑ ½ºÅ¸ÀÏÀÌ µÉÁö ¸ð¸£¹Ç·Î ´Ù½Ã ¼±ÅÃÇϵµ·Ï ÇÑ´Ù } else { MaterialHeader = NULL; } ApplyCombiDataToMaterial(); strgrdCell->Repaint(); #endif col = ACol; row = ARow; PaintBox1->Repaint(); PaintBox2->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TResultForm::StringGrid1DblClick(TObject *Sender) { #ifndef WORKSHEET PopupOpenClick(this); // ÀÛ¾÷Áö½Ã¼­°¡ ¾Æ´Ò °æ¿ì¸¸ #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::FormClose(TObject *Sender, TCloseAction &Action) { // µ¥ÀÌÅÍ ÃʱâÈ­ ClearList(); // IllustFormÀ» °°ÀÌ ´Ý¾Æ ÁØ´Ù if (bIsIllustForm) { StyleIllustForm->FormClose(Sender, Action); } bIsIllustForm = false; } //--------------------------------------------------------------------------- void __fastcall TResultForm::FormDestroy(TObject *Sender) { ClearData(); ClearUpData(); ClearDownData(); ClearCheckData(); delete UpImageList; delete DownImageList; delete CheckImageList; delete FullFileList; delete SilFileList; delete SleFileList; delete ColFileList; delete PantsFileList; delete BeltFileList; delete FullFrontList; delete SilFrontList; delete SleFrontList; delete ColFrontList; delete PantsFrontList; delete BeltFrontList; delete FullBackList; delete SilBackList; delete SleBackList; delete ColBackList; delete PantsBackList; delete BeltBackList; delete FullHeaderList; delete SilHeaderList; delete SleHeaderList; delete ColHeaderList; delete PantsHeaderList; delete BeltHeaderList; delete UpResultFrontList; delete UpResultBackList; delete DownResultFrontList; delete DownResultBackList; delete CheckResultFrontList; delete CheckResultBackList; delete UpResultHeaderList; delete DownResultHeaderList; delete CheckResultHeaderList; // »çÁøÀ» ÅëÇÑ ½ºÅ¸ÀÏ Á¶ÇÕ - TList¿¡ ´ã°ÜÀÖ´Â µ¥ÀÌÅ͸¦ Áö¿ò - by monkman ClearList(); // »çÁøÀ» ÅëÇÑ ½ºÅ¸ÀÏ Á¶ÇÕ // TVecData¸¦ ´ã±âÀ§ÇÑ TList // ÆÐÅÏ¿ë (»óÀÇ) delete PatUpWhole; delete PatUpSil; delete PatUpSle; delete PatUpCol; // ÆÐÅÏ¿ë (ÇÏÀÇ) delete PatDnWhole; delete PatDnSil; delete PatDnBelt; if (SCF) delete SCF; SCF = NULL; #ifdef WORKSHEET // ----- ºÎÀÚÀç °ü·Ã ---------- if (MaterialFileList) delete MaterialFileList; MaterialFileList = NULL; if (MaterialHeaderList) { ClearHeaderList(MaterialHeaderList); delete MaterialHeaderList; } MaterialHeaderList = NULL; if (MaterialImageList) { ClearImageList(MaterialImageList); delete MaterialImageList; } MaterialImageList = NULL; if (CellImageList) { ClearImageList(CellImageList); delete CellImageList; } CellImageList = NULL; if (UpperCombinationList) delete UpperCombinationList; UpperCombinationList = NULL; if (LowerCombinationList) delete LowerCombinationList; LowerCombinationList = NULL; if (CheckCombinationList) delete CheckCombinationList; CheckCombinationList = NULL; #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { #ifdef WORKSHEET MaterialMove(Key); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::rbUpClick(TObject *Sender) { if (rbUp->Checked) { combobxView->Clear(); combobxView->AddItem(IDS_FRONTBACK1, NULL); combobxView->AddItem(IDS_FRONTBACK2, NULL); combobxView->ItemIndex = 0; PopupCheck->Enabled = true; btCheckSave->Enabled = false; StringGrid1->PopupMenu = PopupMenu1; }else if (rbDown->Checked) { combobxView->Clear(); combobxView->AddItem(IDS_FRONTBACK1, NULL); combobxView->AddItem(IDS_FRONTBACK2, NULL); combobxView->ItemIndex = 0; PopupCheck->Enabled = true; btCheckSave->Enabled = false; StringGrid1->PopupMenu = PopupMenu1; }else if (rbCheck->Checked) { combobxView->Clear(); combobxView->AddItem(IDS_FRONTBACK1, NULL); combobxView->AddItem(IDS_FRONTBACK2, NULL); combobxView->AddItem(IDS_UPDOWN1, NULL); combobxView->AddItem(IDS_UPDOWN2, NULL); combobxView->AddItem(IDS_WHOLE, NULL); combobxView->ItemIndex = 0; PopupCheck->Enabled = false; if (0 < CheckCount) btCheckSave->Enabled = true; StringGrid1->PopupMenu = PopupMenu2; } TabControl1->Tabs->Clear(); UpDown1->Position = 0; for (int i = 1; i < 11; i++) TabControl1->Tabs->Add(String(i)); TabControl1->TabIndex = 0; StringGrid1->TopRow = 0; StringGrid1->Repaint(); PaintBox1->Repaint(); PaintBox2->Repaint(); #ifdef WORKSHEET // ù ¹øÂ° Á¶ÇÕ°á°ú¹°ÀÇ Çì´õ¸¦ ÀÌ¿ëÇÏ¿© ºÎÀÚÀç °Ë»ö¿¡ ÀÌ¿ëÇÑ´Ù - by monkman (2011.01.25) if (rbUp->Checked == true && 0 < UpResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)UpResultHeaderList->Items[0]; } else if (rbDown->Checked == true && 0 < DownResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)DownResultHeaderList->Items[0]; } else if (rbCheck->Checked == true && 0 < CheckResultHeaderList->Count) { MaterialHeader = (STYLEDATAFILEHEADER *)CheckResultHeaderList->Items[0]; } else { MaterialHeader = NULL; } SetMaterialComboBox(); ApplyCombiDataToMaterial(); strgrdCell->Repaint(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::spdbtnViewClick(TObject *Sender) { TList *List1 = NULL, *List2 = NULL, *List3 = NULL, *List4 = NULL; int nMaterialIndexBegin1, nMaterialIndexEnd1, nMaterialIndexBegin2, nMaterialIndexEnd2; if (StyleViewForm) StyleViewForm->ExitForm(); delete StyleViewForm; StyleViewForm = NULL; StyleViewForm = new TStyleViewForm(this); StyleViewForm->InitForm(combobxView->ItemIndex); // ±×¸®±â¿ë Àӽà ¸®½ºÆ® List1 = new TList; List2 = new TList; List3 = new TList; List4 = new TList; #ifdef WORKSHEET if (combobxView->ItemIndex == 0 || combobxView->ItemIndex == 1) { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin1 = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd1 = nMaterialIndexBegin1 + CELL_COUNT - 1; } else { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin1 = (StringGrid1->ColCount * StringGrid1->RowCount) + (SelectedUp-1) * CELL_COUNT; nMaterialIndexEnd1 = nMaterialIndexBegin1 + CELL_COUNT - 1; nMaterialIndexBegin2 = (StringGrid1->ColCount * StringGrid1->RowCount) + (SelectedDown-1) * CELL_COUNT; nMaterialIndexEnd2 = nMaterialIndexBegin2 + CELL_COUNT - 1; } #endif switch (combobxView->ItemIndex) { case 0: if (rbUp->Checked) { VecDraw->AssignDataList(List1, UpResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, UpResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, UpResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, UpResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbDown->Checked) { VecDraw->AssignDataList(List1, DownResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, DownResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, DownResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, DownResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbCheck->Checked) { VecDraw->AssignDataList(List1, CheckResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, CheckResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif } // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) /* VecDraw->ArbitraryDraw(StyleViewForm->Image1->Canvas->Handle, List1, StyleViewForm->Image1->Width, StyleViewForm->Image1->Height, -1, 5.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image2->Canvas->Handle, List2, StyleViewForm->Image2->Width, StyleViewForm->Image2->Height, -1, 5.0/8.0); */ VecDraw->DrawVector(StyleViewForm->Image1->Canvas->Handle, List1, -1, 4, 4, StyleViewForm->Image1->Width-8, StyleViewForm->Image1->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image2->Canvas->Handle, List2, -1, 4, 4, StyleViewForm->Image2->Width-8, StyleViewForm->Image2->Height-8, 0.0, true); break; case 1: if (rbUp->Checked) { VecDraw->AssignDataList(List1, UpResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, UpResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, UpResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, UpResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbDown->Checked) { VecDraw->AssignDataList(List1, DownResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, DownResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, DownResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, DownResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbCheck->Checked) { VecDraw->AssignDataList(List1, CheckResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, CheckResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif } // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) /* VecDraw->ArbitraryDraw(StyleViewForm->Image3->Canvas->Handle, List1, StyleViewForm->Image3->Width, StyleViewForm->Image3->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image5->Canvas->Handle, List2, StyleViewForm->Image5->Width, StyleViewForm->Image5->Height, -1, 3.0/8.0); */ VecDraw->DrawVector(StyleViewForm->Image3->Canvas->Handle, List1, -1, 4, 4, StyleViewForm->Image3->Width-8, StyleViewForm->Image3->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image5->Canvas->Handle, List2, -1, 4, 4, StyleViewForm->Image5->Width-8, StyleViewForm->Image5->Height-8, 0.0, true); break; case 2: if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ VecDraw->AssignDataList(List1, CheckResultFrontList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultFrontList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultFrontList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif }else { VecDraw->AssignDataList(List1, CheckResultBackList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultBackList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif } // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) /* VecDraw->ArbitraryDraw(StyleViewForm->Image1->Canvas->Handle, List1, StyleViewForm->Image1->Width, StyleViewForm->Image1->Height, -1, 5.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image2->Canvas->Handle, List2, StyleViewForm->Image2->Width, StyleViewForm->Image2->Height, -1, 5.0/8.0); */ VecDraw->DrawVector(StyleViewForm->Image1->Canvas->Handle, List1, -1, 4, 4, StyleViewForm->Image1->Width-8, StyleViewForm->Image1->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image2->Canvas->Handle, List2, -1, 4, 4, StyleViewForm->Image2->Width-8, StyleViewForm->Image2->Height-8, 0.0, true); break; case 3: if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ VecDraw->AssignDataList(List1, CheckResultFrontList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultFrontList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultFrontList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif }else { VecDraw->AssignDataList(List1, CheckResultBackList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultBackList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif } // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) /* VecDraw->ArbitraryDraw(StyleViewForm->Image3->Canvas->Handle, List1, StyleViewForm->Image3->Width, StyleViewForm->Image3->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image5->Canvas->Handle, List2, StyleViewForm->Image5->Width, StyleViewForm->Image5->Height, -1, 3.0/8.0); */ VecDraw->DrawVector(StyleViewForm->Image3->Canvas->Handle, List1, -1, 4, 4, StyleViewForm->Image3->Width-8, StyleViewForm->Image3->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image5->Canvas->Handle, List2, -1, 4, 4, StyleViewForm->Image5->Width-8, StyleViewForm->Image5->Height-8, 0.0, true); break; case 4: VecDraw->AssignDataList(List1, CheckResultFrontList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultBackList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List3, CheckResultFrontList, SelectedDown, SelectedDown); VecDraw->AssignDataList(List4, CheckResultBackList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List3, CheckResultFrontList, nMaterialIndexBegin2, nMaterialIndexEnd2); VecDraw->AssignDataList(List4, CheckResultBackList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif // ¸ðµç º¤ÅͰ¡ º¸À̵µ·Ï ÁÜ ºñÀ²À» Á¶Á¤Çϰí, °¡¿îµ¥ À§Ä¡Çϵµ·Ï º¯°æ - by monkman (2011.04.07) /* VecDraw->ArbitraryDraw(StyleViewForm->Image3->Canvas->Handle, List1, StyleViewForm->Image3->Width, StyleViewForm->Image3->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image4->Canvas->Handle, List2, StyleViewForm->Image4->Width, StyleViewForm->Image4->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image5->Canvas->Handle, List3, StyleViewForm->Image5->Width, StyleViewForm->Image5->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image6->Canvas->Handle, List4, StyleViewForm->Image6->Width, StyleViewForm->Image6->Height, -1, 3.0/8.0); */ VecDraw->DrawVector(StyleViewForm->Image3->Canvas->Handle, List1, -1, 4, 4, StyleViewForm->Image3->Width-8, StyleViewForm->Image3->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image4->Canvas->Handle, List2, -1, 4, 4, StyleViewForm->Image4->Width-8, StyleViewForm->Image4->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image5->Canvas->Handle, List3, -1, 4, 4, StyleViewForm->Image5->Width-8, StyleViewForm->Image5->Height-8, 0.0, true); VecDraw->DrawVector(StyleViewForm->Image6->Canvas->Handle, List4, -1, 4, 4, StyleViewForm->Image6->Width-8, StyleViewForm->Image6->Height-8, 0.0, true); break; } // StyleViewForm->ShowModal(); StyleViewForm->Show(); StyleViewForm->Assignment = combobxView->ItemIndex; // StyleViewForm->ExitForm(); // delete StyleViewForm; // StyleViewForm = NULL; // Àӽà ¸®½ºÆ®À̹ǷΠ±×³É Áö¿öµµ µÈ´Ù if (List1) delete List1; if (List2) delete List2; if (List3) delete List3; if (List4) delete List4; List1 = NULL; List2 = NULL; List3 = NULL; List4 = NULL; } //--------------------------------------------------------------------------- void __fastcall TResultForm::btCheckSaveClick(TObject *Sender) { HANDLE hFile = INVALID_HANDLE_VALUE; TEXPIAFILEHEADER tpfh; bool layer = false, isVector = true; // Version : 140 - TextBox¸¦ ³ÖÀºÈÄ º¯°æ (04.10.26) //int Version = 140, count; // Version 7.4 : 100, 7.41 : 110, 7.42 : 120 // Version : 150 - Gdiplus Àû¿ëÈÄ º¯°æ (05.03.09) //int Version = 150, count; // Version : 160 - gradient fill Àû¿ë & group index ±¸Á¶ º¯°æ (080507) // Version : 170 - MotiveObject ³Ö°í º¯°æ (09.03.20) // Version : 180 - Unicode ³Ö°í º¯°æ (10.07.29) // Version : 181 - Arrow ¼öÁ¤(µ¥ÀÌÅÍÃß°¡) (11.07.19) int Version = 181, count; //int Version = 160, count; DWORD dwWrite; String filename; TPException ec = EC_NONE; TTexpiaBitmap *tag = NULL; // TempBitmapÀÌ TTexpiaBitmap¿¡¼­ TUnionBitmapÀ¸·Î º¯°æµÇ¾úÀ½ - by monkman (2011.04.06) TUnionBitmap *TempBitmap = NULL; RGBQUAD rgb[256]; HDC dcTemp = NULL; TList *SaveList = NULL; TVecData *temp = NULL, *data = NULL; TPalette *palette = NULL; //int existindex, index; int existcount; int srcMaxGroupIndex; //versionÀÌ 160 ÀÌ»óÀ϶§ group index¸¦ ó¸®Çϱâ À§ÇØ // V_TEXTBOX·Î Ãß°¡ - monkman (2004.11.04) //int linecount, wordcount, lineheight; //TSWordData *srcWordData; Word usecolar = 1, bpp = 24; int nInstNum, nMaterialIndexBegin, nMaterialIndexEnd; int nNextPos, nWidth, nHeight; if (SaveDialog1->Execute()) { for (int i = 1; i < CheckCount+1; i++) { long minlx = MaxInt, minrx = MaxInt; long maxlx = 0, maxrx = 0; long miny = MaxInt, maxy = 0; int cenlx, cenrx, ceny; SaveList = new TList; //existindex = 0; srcMaxGroupIndex = 0; nNextPos = 0; nWidth = 0; nHeight = 0; for (int j = 0; j < CheckResultFrontList->Count; j++) { data = (TVecData *)CheckResultFrontList->Items[j]; if (!data->Equal(i)) continue; minlx = min(minlx, data->First.x); minlx = min(minlx, data->Second.x); maxlx = max(maxlx, data->First.x); maxlx = max(maxlx, data->Second.x); miny = min(miny, data->First.y); miny = min(miny, data->Second.y); maxy = max(maxy, data->First.y); maxy = max(maxy, data->Second.y); } #ifdef WORKSHEET // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin = (StringGrid1->ColCount * StringGrid1->RowCount) + (i-1) * CELL_COUNT; nMaterialIndexEnd = nMaterialIndexBegin + CELL_COUNT - 1; for (int j = 0; j < CheckResultFrontList->Count; j++) { data = (TVecData *)CheckResultFrontList->Items[j]; nInstNum = data->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { minlx = min(minlx, data->First.x); minlx = min(minlx, data->Second.x); maxlx = max(maxlx, data->First.x); maxlx = max(maxlx, data->Second.x); miny = min(miny, data->First.y); miny = min(miny, data->Second.y); maxy = max(maxy, data->First.y); maxy = max(maxy, data->Second.y); } } #endif for (int j = 0; j < CheckResultBackList->Count; j++) { data = (TVecData *)CheckResultBackList->Items[j]; if (!data->Equal(i)) continue; minrx = min(minrx, data->First.x); minrx = min(minrx, data->Second.x); maxrx = max(maxrx, data->First.x); maxrx = max(maxrx, data->Second.x); miny = min(miny, data->First.y); miny = min(miny, data->Second.y); maxy = max(maxy, data->First.y); maxy = max(maxy, data->Second.y); } #ifdef WORKSHEET for (int j = 0; j < CheckResultBackList->Count; j++) { data = (TVecData *)CheckResultBackList->Items[j]; nInstNum = data->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { minrx = min(minrx, data->First.x); minrx = min(minrx, data->Second.x); maxrx = max(maxrx, data->First.x); maxrx = max(maxrx, data->Second.x); miny = min(miny, data->First.y); miny = min(miny, data->Second.y); maxy = max(maxy, data->First.y); maxy = max(maxy, data->Second.y); } } #endif //cenx = 400-(minx+maxx)/2; ceny = 560-(miny+maxy)/2; // center Á¡ cenlx = -minlx + MARGIN_X; cenrx = -minrx + MARGIN_X; ceny = -miny + MARGIN_Y; // center Á¡ (»óÇÏÁ¿ì 20pxÀº Margin) nNextPos = maxlx-minlx+(MARGIN_X*2); if (nNextPos < 0) nNextPos = 0; nWidth = (maxlx-minlx)+(maxrx-minrx)+(MARGIN_X*4); nHeight = maxy-miny+(MARGIN_Y*2); for (int j = 0; j < CheckResultFrontList->Count; j++) { temp = (TVecData *)CheckResultFrontList->Items[j]; if (!temp->Equal(i)) continue; data = new TVecData(0); data->Copy(temp); for (int k = 0; k < data->nCount*3 +1; k++) { data->pList[k].x += cenlx; data->pList[k].y += ceny; } SET_RECT; SaveList->Add(data); //existindex |= data->GroupIndex; if(srcMaxGroupIndex < data->GroupIndex / 10000) srcMaxGroupIndex = data->GroupIndex / 10000; } #ifdef WORKSHEET for (int j = 0; j < CheckResultFrontList->Count; j++) { temp = (TVecData *)CheckResultFrontList->Items[j]; nInstNum = temp->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { data = new TVecData(0); data->Copy(temp); for (int k = 0; k < data->nCount*3 +1; k++) { data->pList[k].x += cenlx; data->pList[k].y += ceny; } SET_RECT; SaveList->Add(data); //existindex |= data->GroupIndex; if(srcMaxGroupIndex < data->GroupIndex / 10000) srcMaxGroupIndex = data->GroupIndex / 10000; } } #endif for (int j = 0; j < CheckResultBackList->Count; j++) { temp = (TVecData *)CheckResultBackList->Items[j]; if (!temp->Equal(i)) continue; data = new TVecData(0); data->Copy(temp); for (int k = 0; k < data->nCount*3 +1; k++) { //data->pList[k].x += cenx+800; data->pList[k].y += ceny; data->pList[k].x += cenrx+nNextPos; data->pList[k].y += ceny; } SET_RECT; SaveList->Add(data); } #ifdef WORKSHEET for (int j = 0; j < CheckResultBackList->Count; j++) { temp = (TVecData *)CheckResultBackList->Items[j]; nInstNum = temp->GetInstNum(); if (nMaterialIndexBegin <= nInstNum && nInstNum < nMaterialIndexEnd) { data = new TVecData(0); data->Copy(temp); for (int k = 0; k < data->nCount*3 +1; k++) { //data->pList[k].x += cenx+800; data->pList[k].y += ceny; data->pList[k].x += cenrx+nNextPos; data->pList[k].y += ceny; } SET_RECT; SaveList->Add(data); } } #endif existcount = SaveList->Count; /* for (int k = 10; k < 32; k++) { // µé¾î°¥ GroupindexÁöÁ¤ for (int l = 10; l < 32; l++) { if (existindex & (1 << l)) continue; index = l; break; } for (int l = existcount; l < SaveList->Count; l++) { data = (TVecData *)SaveList->Items[l]; if (data->bSelected) continue; // ÀÌ¹Ì Çѹø ÁöÁ¤µÇ¾îÀÖ´Â °æ¿ì´Â º¸³½´Ù if (!(data->GroupIndex & (1<GroupIndex &= 0x000001ff; data->GroupIndex += 1<bSelected = true; existindex |= 1<Count; i++) { data = (TVecData *)SaveList->Items[i]; if(data->bSelected) continue; if(data->GroupIndex / 10000 != k) continue; if(sw) { groupIndexState += 10000; sw = false; } data->GroupIndex = ((data->GroupIndex % 10000) & 0x000001ff) + groupIndexState; } } for (int j = 0; j < SaveList->Count; j++) { data = (TVecData *)SaveList->Items[j]; data->bSelected = false; } tpfh.Version = TexVersion('P', 'T', TexStylistFileVersion);//240); //tpfh.CanvasInfor.SetSize(cstFree, 1600, 1120); tpfh.CanvasInfor.SetSize(cstFree, nWidth, nHeight); tpfh.CanvasInfor.DotsPerInch = 160; tpfh.CanvasInfor.Orientation = coPortrait; tpfh.BitsPerPixel = 24; tpfh.Compress = cmZLib; if ((tag = new TTexpiaBitmap) == NULL) goto fail; // MainImageForm->Palette->ToRGBQUAD(rgb, 256); // tag->PutColors(0, 256, rgb); if (!(tag->Create(80, 100, 24))) goto fail; tag->FillRect(Rect(0, 0, 80, 100), clWhite); // Tag »ý¼º if ((TempBitmap = new TUnionBitmap) == NULL) goto fail; //if (!(TempBitmap->Create(1600, 1120, 24))) goto fail; //TempBitmap->FillRect(Rect(0, 0, 1600, 1120), clWhite); if (!(TempBitmap->Create(nWidth, nHeight, 24))) goto fail; TempBitmap->FillRect(Rect(0, 0, nWidth, nHeight), clWhite); if ((dcTemp = tag->CreateDC()) == NULL) goto fail; CombiForm->TagDraw(dcTemp, SaveList, -1, 0, 0, 80, 100); // Vector Tag±×·ÁÁÖ±â tag->DeleteDC(dcTemp); dcTemp = NULL; palette = new TPalette; filename = SaveDialog1->FileName + String(i) + ".tfc"; if ((hFile = CreateFile(filename.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { ec = EC_FILE_NOT_CREATE; goto fail; } if (!WriteFile(hFile, &tpfh, sizeof(TEXPIAFILEHEADER), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &usecolar, sizeof(Word), &dwWrite, NULL)) goto fail; palette->SaveToFileHandle(hFile, 2); if (!WriteFile(hFile, &bpp, sizeof(WORD), &dwWrite, NULL)) goto fail; if (!tag->SaveToTexpiaFile(hFile, cmNone)) goto fail; if (!TempBitmap->SaveToTexpiaFile(hFile, tpfh.Compress)) goto fail; if (!WriteFile(hFile, &layer, sizeof(bool), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &isVector, sizeof(bool), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &Version, sizeof(int), &dwWrite, NULL)) goto fail; count = SaveList->Count; if (!WriteFile(hFile, &count, sizeof(int), &dwWrite, NULL)) goto fail; for (int i = 0; i < SaveList->Count; i++) { data = (TVecData *)SaveList->Items[i]; // if (!data->Equal(MainImageForm->Number)) continue; if (!WriteFile(hFile, &data->Kind, sizeof(EVecKind), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->First, sizeof(POINT), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->Second, sizeof(POINT), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->bAntialiasing, sizeof(bool), &dwWrite, NULL)) goto fail; // Version 150 Ãß°¡ switch (data->Kind) { case V_LINE: case V_CURVE: if (!WriteFile(hFile, &data->PenStyle, sizeof(EPenStyle), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->PenThick, sizeof(double), &dwWrite, NULL)) goto fail; // int->double shin // Version 150 º¯°æ if (!WriteFile(hFile, &data->nCount, sizeof(int), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->bRound, sizeof(bool), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->bFill, sizeof(bool), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->bWinding, sizeof(bool), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->Color, sizeof(TColor), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->Brush, sizeof(TColor), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->bClosed, sizeof(bool), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->GroupIndex, sizeof(int), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, data->pList, sizeof(DPOINT)*(data->nCount*3+1), &dwWrite, NULL)) goto fail; // data->bPatternFill : false bool patternFill = false; if (!WriteFile(hFile, &patternFill, sizeof(bool), &dwWrite, NULL)) goto fail; // if (data->bPatternFill) VecDraw->SaveObjectBitmap(hFile); if (!WriteFile(hFile, data->DashValues, sizeof(double)*7, &dwWrite, NULL)) goto fail; //if (!WriteFile(hFile, data->CapStyle, sizeof(int)*2, &dwWrite, NULL)) goto fail; // version 181 int TempCapStyle[2] = {0, 0}; TempCapStyle[0] = data->CapStyle[0]; TempCapStyle[1] = data->CapStyle[1]; if (!WriteFile(hFile, TempCapStyle, sizeof(int) * 2, &dwWrite, NULL)) goto fail; if (data->CapStyle[0] && data->ArrowCap){ if (!data->ArrowCap->SaveToFile(hFile)) goto fail; // if (!WriteFile(hFile, &data->ArrowCap->bFillLineCap, sizeof(bool), &dwWrite, NULL)) // goto fail; // if (!WriteFile(hFile, &data->ArrowCap->bShowArrowBoth, sizeof(bool), &dwWrite, NULL)) // goto fail; // if (!WriteFile(hFile, &data->ArrowCap->LineCapWidthScale, sizeof(double), &dwWrite, NULL)) // goto fail; // if (!WriteFile(hFile, &data->ArrowCap->LineCapWidth, sizeof(double), &dwWrite, NULL)) // goto fail; // if (!WriteFile(hFile, &data->ArrowCap->LineCapHeight, sizeof(double), &dwWrite, NULL)) // goto fail; } //version 160 if (!WriteFile(hFile, &data->bGradientFill, sizeof(int), &dwWrite, NULL)) goto fail; if (data->bGradientFill){ if (!WriteFile(hFile, &data->gradientItem, sizeof(int), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->gAngle, sizeof(int), &dwWrite, NULL)) goto fail; if (!WriteFile(hFile, &data->gradientColorCount, sizeof(int), &dwWrite, NULL)) goto fail; int count = data->gradientColorCount; if (!WriteFile(hFile, data->gradientColors, sizeof(RGBQUAD)*count, &dwWrite, NULL)) goto fail; } // data->bMotive : false int motive = false; if (!WriteFile(hFile, &motive, sizeof(int), &dwWrite, NULL)) goto fail; break; // TEXTBOX ¼öÁ¤½Ã ÀÌ ºÎºÐÀ» ¼öÁ¤ - by monkman // case V_TEXTBOX: // if (!WriteFile(hFile, &data->CharH, sizeof(int), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &data->CharW, sizeof(int), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &data->TextAngle, sizeof(double), &dwWrite, NULL)) goto fail; // // if (!WriteFile(hFile, &data->StartPoint, sizeof(POINT), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &data->CenterPoint, sizeof(POINT), &dwWrite, NULL)) goto fail; // // linecount = data->ListOfAllLine->LineCount; // if (!WriteFile(hFile, &linecount, sizeof(int), &dwWrite, NULL)) goto fail; // // for (int i=0; iListOfAllLine->GetLineTextBox(i)->LineDataList->Count; // if (!WriteFile(hFile, &wordcount, sizeof(int), &dwWrite, NULL)) goto fail; // // for (int j=0; jListOfAllLine->GetLineTextBox(i)->LineDataList->Items[j]; // if (!WriteFile(hFile, &srcWordData->Selected, sizeof(bool), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->PPoint, sizeof(POINT), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->LFont, sizeof(LOGFONT), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, srcWordData->Word, sizeof(char)*2, &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->UsedByte, sizeof(int), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->Color, sizeof(TColor), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->Interval, sizeof(int), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->HeightGap, sizeof(float), &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &srcWordData->WidthGap, sizeof(float), &dwWrite, NULL)) goto fail; // } // lineheight = data->ListOfAllLine->GetLineTextBox(i)->lineHeight; // lineHeight ÀúÀå // if (!WriteFile(hFile, &lineheight, sizeof(int), &dwWrite, NULL)) goto fail; // } // if (!WriteFile(hFile, data->pList, sizeof(DPOINT)*5, &dwWrite, NULL)) goto fail; // if (!WriteFile(hFile, &data->nCount, sizeof(int), &dwWrite, NULL)) goto fail; // break; } } CloseHandle(hFile); while (SaveList->Count) { data = (TVecData *)SaveList->First(); delete data; SaveList->Remove(data); } if (tag) { delete tag; tag = NULL; } if (TempBitmap) { delete TempBitmap; TempBitmap = NULL; } if (SaveList) { delete SaveList; SaveList = NULL; } if (palette) { delete palette; palette = NULL; } } } fail: } //--------------------------------------------------------------------------- void __fastcall TResultForm::StringGrid1Click(TObject *Sender) { TList *List1 = NULL, *List2 = NULL, *List3 = NULL, *List4 = NULL; int nMaterialIndexBegin1, nMaterialIndexEnd1, nMaterialIndexBegin2, nMaterialIndexEnd2; if (rbCheck->Checked) { if (SelectedDown) { SelectedUp = row*2+col+1; SelectedDown = 0; }else { if (SelectedUp) SelectedDown = row*2+col+1; else SelectedUp = row*2+col+1; } StringGrid1->Repaint(); } if (StyleViewForm) { StyleViewForm->Image1->Canvas->Brush->Color = clWhite; StyleViewForm->Image1->Canvas->FillRect(Rect(0,0,StyleViewForm->Image1->Width,StyleViewForm->Image1->Height)); StyleViewForm->Image2->Canvas->Brush->Color = clWhite; StyleViewForm->Image2->Canvas->FillRect(Rect(0,0,StyleViewForm->Image2->Width,StyleViewForm->Image2->Height)); StyleViewForm->Image3->Canvas->Brush->Color = clWhite; StyleViewForm->Image3->Canvas->FillRect(Rect(0,0,StyleViewForm->Image3->Width,StyleViewForm->Image3->Height)); StyleViewForm->Image4->Canvas->Brush->Color = clWhite; StyleViewForm->Image4->Canvas->FillRect(Rect(0,0,StyleViewForm->Image4->Width,StyleViewForm->Image4->Height)); StyleViewForm->Image5->Canvas->Brush->Color = clWhite; StyleViewForm->Image5->Canvas->FillRect(Rect(0,0,StyleViewForm->Image5->Width,StyleViewForm->Image5->Height)); StyleViewForm->Image6->Canvas->Brush->Color = clWhite; StyleViewForm->Image6->Canvas->FillRect(Rect(0,0,StyleViewForm->Image6->Width,StyleViewForm->Image6->Height)); // ±×¸®±â¿ë Àӽà ¸®½ºÆ® List1 = new TList; List2 = new TList; List3 = new TList; List4 = new TList; #ifdef WORKSHEET if (StyleViewForm->Assignment == 0 || StyleViewForm->Assignment == 1) { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin1 = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nMaterialIndexEnd1 = nMaterialIndexBegin1 + CELL_COUNT - 1; } else { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nMaterialIndexBegin1 = (StringGrid1->ColCount * StringGrid1->RowCount) + (SelectedUp-1) * CELL_COUNT; nMaterialIndexEnd1 = nMaterialIndexBegin1 + CELL_COUNT - 1; nMaterialIndexBegin2 = (StringGrid1->ColCount * StringGrid1->RowCount) + (SelectedDown-1) * CELL_COUNT; nMaterialIndexEnd2 = nMaterialIndexBegin2 + CELL_COUNT - 1; } #endif switch (StyleViewForm->Assignment) { case 0: if (rbUp->Checked) { VecDraw->AssignDataList(List1, UpResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, UpResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, UpResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, UpResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbDown->Checked) { VecDraw->AssignDataList(List1, DownResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, DownResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, DownResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, DownResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbCheck->Checked) { VecDraw->AssignDataList(List1, CheckResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, CheckResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif } VecDraw->ArbitraryDraw(StyleViewForm->Image1->Canvas->Handle, List1, StyleViewForm->Image1->Width, StyleViewForm->Image1->Height, -1, 5.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image2->Canvas->Handle, List2, StyleViewForm->Image2->Width, StyleViewForm->Image2->Height, -1, 5.0/8.0); break; case 1: if (rbUp->Checked) { VecDraw->AssignDataList(List1, UpResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, UpResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, UpResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, UpResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbDown->Checked) { VecDraw->AssignDataList(List1, DownResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, DownResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, DownResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, DownResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif }else if (rbCheck->Checked) { VecDraw->AssignDataList(List1, CheckResultFrontList, row*2+col+1, row*2+col+1); VecDraw->AssignDataList(List2, CheckResultBackList, row*2+col+1, row*2+col+1); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); #endif } VecDraw->ArbitraryDraw(StyleViewForm->Image3->Canvas->Handle, List1, StyleViewForm->Image3->Width, StyleViewForm->Image3->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image5->Canvas->Handle, List2, StyleViewForm->Image5->Width, StyleViewForm->Image5->Height, -1, 3.0/8.0); break; case 2: if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ VecDraw->AssignDataList(List1, CheckResultFrontList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultFrontList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultFrontList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif }else { VecDraw->AssignDataList(List1, CheckResultBackList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultBackList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif } VecDraw->ArbitraryDraw(StyleViewForm->Image1->Canvas->Handle, List1, StyleViewForm->Image1->Width, StyleViewForm->Image1->Height, -1, 5.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image2->Canvas->Handle, List2, StyleViewForm->Image2->Width, StyleViewForm->Image2->Height, -1, 5.0/8.0); break; case 3: if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ VecDraw->AssignDataList(List1, CheckResultFrontList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultFrontList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultFrontList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif }else { VecDraw->AssignDataList(List1, CheckResultBackList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultBackList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif } VecDraw->ArbitraryDraw(StyleViewForm->Image3->Canvas->Handle, List1, StyleViewForm->Image3->Width, StyleViewForm->Image3->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image5->Canvas->Handle, List2, StyleViewForm->Image5->Width, StyleViewForm->Image5->Height, -1, 3.0/8.0); break; case 4: VecDraw->AssignDataList(List1, CheckResultFrontList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List2, CheckResultBackList, SelectedUp, SelectedUp); VecDraw->AssignDataList(List3, CheckResultFrontList, SelectedDown, SelectedDown); VecDraw->AssignDataList(List4, CheckResultBackList, SelectedDown, SelectedDown); #ifdef WORKSHEET VecDraw->AssignDataList(List1, CheckResultFrontList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List2, CheckResultBackList, nMaterialIndexBegin1, nMaterialIndexEnd1); VecDraw->AssignDataList(List3, CheckResultFrontList, nMaterialIndexBegin2, nMaterialIndexEnd2); VecDraw->AssignDataList(List4, CheckResultBackList, nMaterialIndexBegin2, nMaterialIndexEnd2); #endif VecDraw->ArbitraryDraw(StyleViewForm->Image3->Canvas->Handle, List1, StyleViewForm->Image3->Width, StyleViewForm->Image3->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image4->Canvas->Handle, List2, StyleViewForm->Image4->Width, StyleViewForm->Image4->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image5->Canvas->Handle, List3, StyleViewForm->Image5->Width, StyleViewForm->Image5->Height, -1, 3.0/8.0); VecDraw->ArbitraryDraw(StyleViewForm->Image6->Canvas->Handle, List4, StyleViewForm->Image6->Width, StyleViewForm->Image6->Height, -1, 3.0/8.0); break; } // Àӽà ¸®½ºÆ®À̹ǷΠ±×³É Áö¿öµµ µÈ´Ù if (List1) delete List1; if (List2) delete List2; if (List3) delete List3; if (List4) delete List4; } List1 = NULL; List2 = NULL; List3 = NULL; List4 = NULL; } //--------------------------------------------------------------------------- void __fastcall TResultForm::spdbtnBackClick(TObject *Sender) { if (CombiForm->bIsIllustForm) { Visible = false; bIsIllustForm = false; StyleIllustForm->progbarCombination->Position = 0; CombiForm->Left = (Screen->Width - CombiForm->Width); CombiForm->Top = 0; CombiForm->InitForm(); CombiForm->Show(); } else { Visible = false; if (bIsIllustForm) { StyleIllustForm->Left = (Screen->Width - CombiForm->Width); StyleIllustForm->Top = 0; StyleIllustForm->progbarCombination->Position = 0; StyleIllustForm->Show(); CombiForm->InitForm(); } else { CombiForm->Left = (Screen->Width - CombiForm->Width); CombiForm->Top = 0; if (CombiForm->bInit) { // ÃʱâÈ­°¡ ÇÊ¿äÇÑ °æ¿ì - by monkman (2004.10.12) CombiForm->InitForm(); // ÃʱâÈ­ ÈÄ } CombiForm->Show(); } bIsIllustForm = false; } } //--------------------------------------------------------------------------- /* int __fastcall TResultForm::AvailableGroupIndex(TList *list, int inst) { int existindex = 0, index; TVecData *data; for (int i = 0; i < list->Count; i++) { // GroupIndex ¸ÂÃçÁÖ±â data = (TVecData *)list->Items[i]; if (!data->Equal(inst)) continue; if (!data->GroupIndex) continue; existindex |= data->GroupIndex; } for (int i = 10; i < 32; i++) { if (existindex & (1 << i)) continue; index = i; break; } return 1<Tabs->Clear(); for (int i = 1; i < 11; i++) { if ((i+UpDown1->Position*10) > 84) break; String s = String(i+UpDown1->Position*10); TabControl1->Tabs->Add(s); } TabControl1->TabIndex = 0; StringGrid1->TopRow = 6*(TabControl1->TabIndex+UpDown1->Position*10); */ TabControl1->Tabs->Clear(); for (int i = 1; i < 11; i++) { if ((i+UpDown1->Position*10) > 125) break; String s = String(i+UpDown1->Position*10); TabControl1->Tabs->Add(s); } TabControl1->TabIndex = 0; StringGrid1->TopRow = 4*(TabControl1->TabIndex+UpDown1->Position*10); } //--------------------------------------------------------------------------- void __fastcall TResultForm::TabControl1Change(TObject *Sender) { StringGrid1->TopRow = 4*(TabControl1->TabIndex+UpDown1->Position*10); } //--------------------------------------------------------------------------- // »çÁøÀ» ÅëÇÑ ½ºÅ¸ÀÏ Á¶ÇÕ - TList¿¡ ´ã°ÜÀÖ´Â µ¥ÀÌÅ͸¦ Áö¿ò - by monkman void __fastcall TResultForm::ClearList() { TVecData *data; while (PatUpWhole->Count) { data = (TVecData *)PatUpWhole->First(); delete data; PatUpWhole->Remove(data); } while (PatUpSil->Count) { data = (TVecData *)PatUpSil->First(); delete data; PatUpSil->Remove(data); } while (PatUpSle->Count) { data = (TVecData *)PatUpSle->First(); delete data; PatUpSle->Remove(data); } while (PatUpCol->Count) { data = (TVecData *)PatUpCol->First(); delete data; PatUpCol->Remove(data); } while (PatDnWhole->Count) { data = (TVecData *)PatDnWhole->First(); delete data; PatDnWhole->Remove(data); } while (PatDnSil->Count) { data = (TVecData *)PatDnSil->First(); delete data; PatDnSil->Remove(data); } while (PatDnBelt->Count) { data = (TVecData *)PatDnBelt->First(); delete data; PatDnBelt->Remove(data); } } //--------------------------------------------------------------------------- // Style Size¸¦ ¾ò±â À§Çؼ­ added by maxleo21c (2004/05/25) void __fastcall TResultForm::GetStyleSize(TList *DataList, int &Width, int &Height, int &CenterX, int &CenterY) { TVecData *vData; long minx = MaxInt, miny = MaxInt, maxx = 0, maxy = 0; for (int i = 0; i < DataList->Count; i++) { vData = (TVecData *)DataList->Items[i]; minx = min(minx, vData->First.x); minx = min(minx, vData->Second.x); maxx = max(maxx, vData->First.x); maxx = max(maxx, vData->Second.x); miny = min(miny, vData->First.y); miny = min(miny, vData->Second.y); maxy = max(maxy, vData->First.y); maxy = max(maxy, vData->Second.y); } Width = maxx - minx; Height = maxy - miny; CenterX = (maxx + minx)/2 - Width/2; CenterY = (maxy + miny)/2 - Height/2; } //--------------------------------------------------------------------------- // Added by maxleo21c (2004/06/15) for StyleViewPopupOpen void __fastcall TResultForm::MakeChildForPopupOpen(TMainImageForm *Child, int diffTopX, int diffTopY, int diffBotX, int diffBotY) { TPException ec = EC_NONE; TPCanvasInfor CanvasInfor; CanvasInfor.DotsPerInch = 160; CanvasInfor.SizeType = cstFree; if (diffTopX >= diffBotX) { CanvasInfor.Width = (MARGIN_X*2) + diffTopX; } else { CanvasInfor.Width = (MARGIN_X*2) + (diffBotX); } CanvasInfor.Height = (MARGIN_Y*3) + diffTopY + diffBotY; //CanvasInfor.Width = 800; //CanvasInfor.Height = 1120; // ·¹À̾ ÆÄÀÏ·Î ÀúÀåµÉ¶§ ÀÛ¾÷±¸¿ªÀº ÀúÀåÀÌ µÇÁö ¾Ê±â ¶§¹®¿¡ // ½ÇÁ¦ ÀÛ¾÷±¸¿ªÀº ´«¿¡ º¸ÀÌÁö ¾ÊÁö¸¸ ³²¾ÆÀÖ´Â °æ¿ì°¡ µÈ´Ù - by monkman (2005.06.16) //if (MainImageForm) MainImageForm->iMainImage->Deactivate(); if ((Child = new TMainImageForm(Application))==NULL) { ec = EC_FORM_NOT_CREATE; goto fail; } if ((ec = Child->InitForm2(CanvasInfor, 24))!=EC_NONE) goto fail; // Child->StyleDivision = int(illustheader.Division); // Child->StyleType = int(illustheader.Type1); fail: } //--------------------------------------------------------------------------- // Added by maxleo21c (2004/05/31) with Merge Function void __fastcall TResultForm::StyleViewPopupOpen(int sTag, int OpenOrMerge) { /* // Open & Merge FunctionÀ» À§ÇØ (Open : 1, Merge : 0) TMainImageForm *Child = NULL; TPException ec = EC_NONE; PSTYLEDATAFILEHEADER header1; int Width, Height; int diffTopX, diffBotX; int cenxTop, cenxLeft; switch (sTag) { case 1: // 1, 2 case 2: // 3, 5 (in 3,4,5,6) if (rbUp->Checked) { header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[row*2+col+1]; AddStyleViewDataPopup(Child, header1, UpResultFrontList, row*2+col+1, cenxTop, cenxLeft, true); AddStyleViewDataPopup(Child, header1, UpResultBackList, row*2+col+1, cenxTop, cenxLeft, false); }else if (rbDown->Checked) { header1 = (PSTYLEDATAFILEHEADER)DownResultHeaderList->Items[row*2+col+1]; AddStyleViewDataPopup(Child, header1, DownResultFrontList, row*2+col+1, cenxTop, cenxLeft, true); AddStyleViewDataPopup(Child, header1, DownResultBackList, row*2+col+1, cenxTop, cenxLeft, false); }else if (rbCheck->Checked) { header1 = (PSTYLEDATAFILEHEADER)CheckResultHeaderList->Items[row*2+col+1]; AddStyleViewDataPopup(Child, header1, CheckResultFrontList, row*2+col+1, cenxTop, cenxLeft, true); AddStyleViewDataPopup(Child, header1, CheckResultBackList, row*2+col+1, cenxTop, cenxLeft, false); } break; case 3: // 1, 2 case 4: // 3, 5 (in 3,4,5,6) if (PageFront->ActivePageIndex == 0) { // ¾ÕÆÇ header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedUp]; AddStyleViewDataPopup(Child, header1, CheckResultFrontList, SelectedUp, cenxTop, cenxLeft, true); header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedDown]; AddStyleViewDataPopup(Child, header1, CheckResultFrontList, SelectedDown, cenxTop, cenxLeft, false); }else { header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedUp]; AddStyleViewDataPopup(Child, header1, CheckResultBackList, SelectedUp, cenxTop, cenxLeft, true); header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedDown]; AddStyleViewDataPopup(Child, header1, CheckResultBackList, SelectedDown, cenxTop, cenxLeft, false); } break; case 5: // 3, 4, 5, 6 header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedUp]; AddStyleViewDataPopup(Child, header1, CheckResultFrontList, SelectedUp, cenxTop, cenxLeft, true); header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedUp]; AddStyleViewDataPopup(Child, header1, CheckResultBackList, SelectedUp, cenxTop, cenxLeft, false); header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedDown]; AddStyleViewDataPopup(Child, header1, CheckResultFrontList, SelectedDown, cenxTop, cenxLeft, false); header1 = (PSTYLEDATAFILEHEADER)UpResultHeaderList->Items[SelectedDown]; AddStyleViewDataPopup(Child, header1, CheckResultBackList, SelectedDown, cenxTop, cenxLeft, false); break; } */ } //--------------------------------------------------------------------------- // Added by maxleo21c (2004/05/31) void __fastcall TResultForm::AddStyleViewDataPopup(TMainImageForm *Child, STYLEDATAFILEHEADER &header1, TList *list1, int number, int cenxTop, int cenxLeft, bool sw) { TVecData *data, *cdata; PSTYLEDATAFILEHEADER pheader, pheader2; // Ä«ÇÇ¿ë pheader = &header1; pheader2 = new STYLEDATAFILEHEADER; VecDraw->CopySTYHeader(pheader2, *pheader); if (Child) Child->StyleHeader->Add(pheader2); else MainImageForm->StyleHeader->Add(pheader2); for (int i = 0; i < header1.Count1; i++) { cdata = (TVecData *)list1->Items[i]; if (!cdata->Equal(number)) continue; data = new TVecData(Child->Number); data->Copy(cdata); for (int k = 0; k < cdata->nCount*3 +1; k++) { data->pList[k].x += cenxTop; data->pList[k].y += cenxLeft; } SET_RECT; data->bSelected = true; if (Child) { data->HeaderNumber = Child->StyleHeader->Count; Child->V_DATA->Add(data); VecDraw->UndoSave(VU_CREATE, Child->V_DATA->Count-1, sw); } else { VecDraw->NVector->DataList->Add(data); VecDraw->UndoSave(VU_CREATE, MainImageForm->V_DATA->Count-1, sw); } sw = false; } } //--------------------------------------------------------------------------- bool __fastcall TResultForm::CompareCheckedStyles() { // CombiForm¿¡ ¼±ÅÃµÈ °Í°ú ´Ù¸¥°ÍÀÌ ÀÖÀ¸¸é ¹«Á¶°Ç return false - by monkman (2004.05.31) for (int i = 0; i < MAX_SIL; i++) { // Old Silhouette if (i < 100) { if (bCheckedOldSilhouette[i] != CombiForm->bCheckedOldSilhouette[i]) return false; } for (int j = 0; j < MAX_DETAIL; j++) { if (DetailSilhouette[i][j] != CombiForm->DetailSilhouette[i][j]) return false; if (i < MAX_SLE) { if (DetailSleeve[i][j] != CombiForm->DetailSleeve[i][j]) return false; } if (i < MAX_COL) { if (DetailCollar[i][j] != CombiForm->DetailCollar[i][j]) return false; } if (i < MAX_PANTS) { if (DetailPants[i][j] != CombiForm->DetailPants[i][j]) return false; } if (i < MAX_BELT) { if (DetailBelt[i][j] != CombiForm->DetailBelt[i][j]) return false; } } } return true; } //--------------------------------------------------------------------------- void __fastcall TResultForm::CopyCombiFormCheckedStyles() { // CombiForm¿¡ ¼±ÅÃµÈ °ÍµéÀ» º¹»çÇÑ´Ù - by monkman (2004.05.31) CombiForm->bReCombination = false; memcpy(bCheckedOldSilhouette, CombiForm->bCheckedOldSilhouette, sizeof(int)*100); memcpy(DetailSilhouette, CombiForm->DetailSilhouette, sizeof(BYTE)*MAX_SIL*MAX_DETAIL); memcpy(DetailSleeve, CombiForm->DetailSleeve, sizeof(BYTE)*MAX_SLE*MAX_DETAIL); memcpy(DetailCollar, CombiForm->DetailCollar, sizeof(BYTE)*MAX_COL*MAX_DETAIL); memcpy(DetailPants, CombiForm->DetailPants, sizeof(BYTE)*MAX_PANTS*MAX_DETAIL); memcpy(DetailBelt, CombiForm->DetailBelt, sizeof(BYTE)*MAX_BELT*MAX_DETAIL); } //--------------------------------------------------------------------------- void __fastcall TResultForm::spdbtnElandClick(TObject *Sender) { #ifdef WORKSHEET TCombinationData *CombiData = NULL; TList *CombinationList = NULL, *FrontResultList = NULL, *BackResultList = NULL, *FrontWholeList = NULL, *BackWholeList = NULL; int nIndex = 0, nInstNum, nResultIndex, nBeginResultIndex, nEndResultIndex; TVecData *dataSrc = NULL, *dataDst = NULL; nIndex = (StringGrid1->ColCount * row) + col; if (rbUp->Checked == true) { CombinationList = UpperCombinationList; FrontResultList = UpResultFrontList; BackResultList = UpResultBackList; } else if (rbDown->Checked == true) { CombinationList = LowerCombinationList; FrontResultList = DownResultFrontList; BackResultList = DownResultBackList; } else if (rbCheck->Checked == true) { CombinationList = CheckCombinationList; FrontResultList = CheckResultFrontList; BackResultList = CheckResultBackList; } if (CombinationList && nIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[nIndex]; if (CombiData) { VecDraw->ClearDataList(CombiData->UpperWholeFrontDataList); VecDraw->ClearDataList(CombiData->UpperWholeBackDataList); VecDraw->ClearDataList(CombiData->LowerWholeFrontDataList); VecDraw->ClearDataList(CombiData->LowerWholeBackDataList); if (CombiData->Type != TP_PANTS && CombiData->Type != TP_SKIRT) { FrontWholeList = CombiData->UpperWholeFrontDataList; BackWholeList = CombiData->UpperWholeBackDataList; } else { FrontWholeList = CombiData->LowerWholeFrontDataList; BackWholeList = CombiData->LowerWholeBackDataList; } // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nResultIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nBeginResultIndex = nResultIndex; nEndResultIndex = nResultIndex + CELL_COUNT; nIndex = nIndex + 1; // StringGrid1¿¡¼­ ¼±ÅÃµÈ Index¸¦ ã±â À§ÇØ 1À» ´õÇÑ´Ù // ¾ÕÆÇ for (int i = 0; i < FrontResultList->Count; i++) { dataSrc = (TVecData *)FrontResultList->Items[i]; nInstNum = dataSrc->GetInstNum(); if (nInstNum == nIndex || (nBeginResultIndex <= nInstNum && nInstNum < nEndResultIndex)) { dataDst = new TVecData(0); dataDst->Copy(dataSrc); FrontWholeList->Add(dataDst); } } // µÞÆÇ for (int i = 0; i < BackResultList->Count; i++) { dataSrc = (TVecData *)BackResultList->Items[i]; nInstNum = dataSrc->GetInstNum(); if (nInstNum == nIndex || (nBeginResultIndex <= nInstNum && nInstNum < nEndResultIndex)) { dataDst = new TVecData(0); dataDst->Copy(dataSrc); BackWholeList->Add(dataDst); } } WorkSheetForm->InitForm(CombiData); WorkSheetForm->Show(); } } else { WorkSheetForm->InitForm(NULL); WorkSheetForm->Show(); } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdCellMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { #ifdef WORKSHEET if (MaterialHeader && Shift.Contains(ssLeft)) { strgrdCell->MouseToCell(X, Y, DragMaterialCol, DragMaterialRow); strgrdCell->BeginDrag(true, 0); } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdCellDragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { #ifdef WORKSHEET int ARow, ACol; strgrdCell->MouseToCell(X, Y, ACol, ARow); if (MaterialHeader) { if (ACol == DragMaterialCol && ARow == DragMaterialRow) Accept = false; // À§Ä¡°¡ °°À» °æ¿ì else Accept = true; // À§Ä¡°¡ ´Ù¸¦ °æ¿ì } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdCellDragDrop(TObject *Sender, TObject *Source, int X, int Y) { #ifdef WORKSHEET int ARow, ACol; TCombinationData *CombiData = NULL; TList *CombinationList = NULL, *ResultList = NULL, *OtherSideResultList = NULL, *MoveList = NULL; int nResultIndex, nListIndex; if (rbUp->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = UpResultFrontList; OtherSideResultList = UpResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = UpResultBackList; OtherSideResultList = UpResultFrontList; } } else if (rbDown->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = DownResultFrontList; OtherSideResultList = DownResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = DownResultBackList; OtherSideResultList = DownResultFrontList; } } else if (rbCheck->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = CheckResultFrontList; OtherSideResultList = CheckResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = CheckResultBackList; OtherSideResultList = CheckResultFrontList; } } if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; strgrdCell->MouseToCell(X, Y, ACol, ARow); if (MaterialHeader && 0 <= DragMaterialCol && DragMaterialCol < strgrdCell->ColCount && 0 <= DragMaterialRow && DragMaterialRow < strgrdCell->RowCount) { if (CombinationList && CombiIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; // ¸Â±³È¯ if (DragMaterialCol < CellImageList->Count && ACol < CellImageList->Count) { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nResultIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; CombiData->ExchangeMaterialLayerOrder(ACol, DragMaterialCol); CellImageList->Exchange(ACol, DragMaterialCol); // Á¤¸®µÈ ¼ø¼­´ë·Î È­¸é ±¸¼º // --- ¹Ý´ë¸é ó¸® --- RearrangeResultListByMaterial(OtherSideResultList, CombiData, nResultIndex); // --- ÇöÀç¸é ó¸® --- RearrangeResultListByMaterial(ResultList, CombiData, nResultIndex); } } } strgrdCell->Repaint(); if (PageFront->ActivePage == TabFront) PaintBox1->Repaint(); else PaintBox2->Repaint(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdCellDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { #ifdef WORKSHEET // Cell ¸ñ·Ï ±×¸®±â TCombinationData *CombiData = NULL; TList *CombinationList = NULL; TFileInfor *fi = NULL; HDC hDC = NULL; TRect r; int nIndex = 0; if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; if (MaterialHeader && CombinationList && CombiIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; nIndex = (ACol * ARow) + ACol; if (CombiData && nIndex < CellImageList->Count) { fi = (TFileInfor *)CellImageList->Items[nIndex]; if (fi) { // fi->Depth°¡ LayerOrderÀÌ´Ù if ((hDC = fi->tBitmap->CreateDC()) == NULL) return; BitBlt(strgrdCell->Canvas->Handle, Rect.Left+1, Rect.Top+1, fi->tBitmap->Width, fi->tBitmap->Height, hDC, 0, 0, SRCCOPY); fi->tBitmap->DeleteDC(hDC); } } } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::spdbtnDeleteClick(TObject *Sender) { #ifdef WORKSHEET int ARow, ACol; TCombinationData *CombiData = NULL; TList *CombinationList = NULL, *ResultList = NULL, *OtherSideResultList = NULL; int nResultIndex, nListIndex; TFileInfor *fi = NULL; if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; if (rbUp->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = UpResultFrontList; OtherSideResultList = UpResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = UpResultBackList; OtherSideResultList = UpResultFrontList; } } else if (rbDown->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = DownResultFrontList; OtherSideResultList = DownResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = DownResultBackList; OtherSideResultList = DownResultFrontList; } } else if (rbCheck->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = CheckResultFrontList; OtherSideResultList = CheckResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = CheckResultBackList; OtherSideResultList = CheckResultFrontList; } } if (MaterialHeader && 0 <= strgrdCell->Col && strgrdCell->Col < strgrdCell->ColCount) { if (CombinationList && CombiIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; if (0 <= strgrdCell->Col && strgrdCell->Col < CellImageList->Count) { // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nResultIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nListIndex = CombiData->MaterialLayerOrder[strgrdCell->Col]; if (0 <= nListIndex && nListIndex < CELL_COUNT) { // ÇöÀç À§Ä¡ »èÁ¦ // ----- ¹Ý´ë¸é ó¸® ------ VecDraw->DeleteDataList(OtherSideResultList, nResultIndex+nListIndex); // ----- ÇöÀç¸é ó¸® ------ VecDraw->DeleteDataList(ResultList, nResultIndex+nListIndex); CombiData->InitMaterial(CombiData->MaterialLayerOrder[strgrdCell->Col]); CellImageList->Delete(strgrdCell->Col); // Á¤¸®µÈ ¼ø¼­´ë·Î È­¸é ±¸¼º // --- ¹Ý´ë¸é ó¸® --- RearrangeResultListByMaterial(OtherSideResultList, CombiData, nResultIndex); // --- ÇöÀç¸é ó¸® --- RearrangeResultListByMaterial(ResultList, CombiData, nResultIndex); } } } } strgrdCell->Repaint(); if (PageFront->ActivePage == TabFront) PaintBox1->Repaint(); else PaintBox2->Repaint(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::rzsplitSplitHotSpotClick(TObject *Sender) { #ifdef WORKSHEET if (rzsplitSplit->HotSpotClosed == true) { // ´ÝÇûÀ» ¶§ Left = Left + (Width - nOriginWidth); Width = nOriginWidth; } else { // ¿­·ÈÀ» ¶§ Left = Left - rzpnlMaterial->Width; Width = Width + rzpnlMaterial->Width; } #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::spdbtnMaterialDirectoryClick(TObject *Sender) { #ifdef WORKSHEET String Msg; String strOldMaterialRootPath; shMaterialDirectory->Pen->Color = clRed; strOldMaterialRootPath = strMaterialRootPath; strMaterialRootPath = BaseDirectoryDialogFunc("DataTransForm_Material", strMaterialRootPath); Msg = IDS_MESSAGE0 + strMaterialRootPath + IDS_MESSAGE1; if (strOldMaterialRootPath.LowerCase() != strMaterialRootPath.LowerCase()) { // ¸Þ½ÃÁö : ±âº» Æú´õ°¡ <Æú´õ¸í>·Î º¯°æµÇ¾ú½À´Ï´Ù. MessageDlg(Msg, mtInformation, TMsgDlgButtons() << mbOK, 0); rzshelltreeMaterialExplorer->BaseFolder->PathName = strMaterialRootPath; lbMaterialDirectory->Caption = strMaterialRootPath; } shMaterialDirectory->Pen->Color = clBlack; #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::combobxMaterialChange(TObject *Sender) { #ifdef WORKSHEET // ¼³Á¤µÈ ³»¿ë¿¡ µû¶ó ºÎÀÚÀç ¸ñ·ÏÀ» °Ë»öÇÑ´Ù FindMaterialList(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::rzshelltreeMaterialExplorerChange( TObject *Sender, TTreeNode *Node) { #ifdef WORKSHEET // ¼³Á¤µÈ ³»¿ë¿¡ µû¶ó ºÎÀÚÀç ¸ñ·ÏÀ» °Ë»öÇÑ´Ù FindMaterialList(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdMaterialClick(TObject *Sender) { // } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdMaterialDblClick(TObject *Sender) { #ifdef WORKSHEET TCombinationData *CombiData = NULL; TList *CombinationList = NULL; STYLEDATAFILEHEADER header; int nMaterialIndex = 0, nCellIndex = -1, nListIndex = -1, nResultIndex = 0; String strFileName, strExtName; TList *VectorList = NULL; // ºÎÀÚÀç À§Ä¡¸¦ ¾Ë±â Àü±îÁö »ç¿ëµÇ´Â Àӽà ¸®½ºÆ® TList *ResultList = NULL, *OtherSideResultList = NULL; // °á°ú ¸®½ºÆ®¿Í ±× ¹Ý´ëÆí °á°ú ¸®½ºÆ® if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; if (rbUp->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = UpResultFrontList; OtherSideResultList = UpResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = UpResultBackList; OtherSideResultList = UpResultFrontList; } } else if (rbDown->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = DownResultFrontList; OtherSideResultList = DownResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = DownResultBackList; OtherSideResultList = DownResultFrontList; } } else if (rbCheck->Checked == true) { if (PageFront->ActivePage == TabFront) { ResultList = CheckResultFrontList; OtherSideResultList = CheckResultBackList; } else if (PageFront->ActivePage == TabBack) { ResultList = CheckResultBackList; OtherSideResultList = CheckResultFrontList; } } nMaterialIndex = (strgrdMaterial->ColCount * strgrdMaterial->Row) + strgrdMaterial->Col; if (CombinationList && CombiIndex < CombinationList->Count && nMaterialIndex < MaterialFileList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; strFileName = MaterialFileList->Strings[nMaterialIndex]; if (CombiData && strFileName.IsEmpty() == false/* && nCellIndex < CELL_COUNT*/) { VectorList = new TList; if (VectorList) { if (LoadFromSTYFile(strFileName, &header, VectorList)) { // headerÀÇ ³»¿ëÀ» ÅëÇØ ºÎÀÚÀç À§Ä¡¸¦ °áÁ¤ if (header.Type != TP_PANTS && header.Type != TP_SKIRT) { // »óÀÇ for (int i = 0; i < CELL_COUNT; i++) { if (Cell_Order[i] == header.EUpperMaterial) { nListIndex = i; break; } } } else { // ÇÏÀÇ for (int i = 0; i < CELL_COUNT; i++) { if (Cell_Order[i] == header.ELowerMaterial) { nListIndex = i; break; } } } // ºÎÀÚÀç À§Ä¡¸¦ ¾Ë°Ô µÇ¾úÀ¸¹Ç·Î ÀÛ¾÷Áö½Ã¼­¿¡ ÇÊ¿äÇÑ ³»¿ë º¹»ç if (0 <= nListIndex && nListIndex < CELL_COUNT) { strExtName = ExtractFileExt(strFileName); CombiData->MaterialFileName[nListIndex] = strFileName.SubString(1, strFileName.Length()-strExtName.Length()); CombiData->MaterialStyleID[nListIndex] = String(header.StyleID); CombiData->MaterialComment[nListIndex] = String(header.Comment); if (header.Sort == SO_UPPERMATRIAL) CombiData->MaterialType[nListIndex] = header.EUpperMaterial; else if (header.Sort == SO_LOWERMATRIAL) CombiData->MaterialType[nListIndex] = header.ELowerMaterial; if (0 <= nListIndex && nListIndex < CELL_COUNT) { // ºÎÀÚÀç À§Ä¡¸¦ ¾Ë°Ô µÇ¾úÀ¸¹Ç·Î À̵¿ÇÑ´Ù // PageFront->ActivePageIndex¸¦ ÀÌ¿ëÇØ ¾ÕÆÇ, µÞÆÇÀ» ±¸ºÐÇØÁØ´Ù VecDraw->CopyDataList(CombiData->MaterialDataList[nListIndex], VectorList, -1, PageFront->ActivePageIndex); for (int i = 0; i < CELL_COUNT; i++) { if (CombiData->MaterialLayerOrder[i] == nListIndex) { nCellIndex = i; break; } } // ºÎÀÚÀç À§Ä¡¸¦ ¾Ë°Ô µÇ¾úÀ¸¹Ç·Î À̵¿ÇÑ´Ù // PageFront->ActivePageIndex¸¦ ÀÌ¿ëÇØ ¾ÕÆÇ, µÞÆÇÀ» ±¸ºÐÇØÁØ´Ù DrawImageList(CellImageList, CombiData->MaterialDataList[nListIndex], strgrdCell->DefaultColWidth-2, strgrdCell->DefaultRowHeight-2, nCellIndex, PageFront->ActivePageIndex); // Ãß°¡µÇ´Â °æ¿ì if (nCellIndex < 0) nCellIndex = CellImageList->Count - 1; // ¼ø¼­¸¦ ±â·Ï CombiData->MaterialLayerOrder[nCellIndex] = nListIndex; // Cell ¼±Åà strgrdCell->Col = nCellIndex; // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nResultIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; // º¸¿©Áö´Â ºÎÀÚÀçÀÇ °æ¿ì¿¡¸¸ if (Cell_Visible[nListIndex]) { // ¹Ý´ëÆí ¸®½ºÆ®¿¡ Ãß°¡ÇϰíÀÚÇÏ´Â ºÎÀÚÀç°¡ ÀÖÀ» °æ¿ì Á¦°Å VecDraw->DeleteDataList(OtherSideResultList, nResultIndex+nListIndex); // ±âÁ¸ À§Ä¡¿¡ ÀÖ´Â µ¥ÀÌÅÍ´Â Á¦°Å ÈÄ ResultList·Î À̵¿ VecDraw->DeleteDataList(ResultList, nResultIndex+nListIndex); VecDraw->MoveDataList(ResultList, VectorList, -1, nResultIndex+nListIndex); } } // Á¤¸®µÈ ¼ø¼­´ë·Î È­¸é ±¸¼º // --- ¹Ý´ë¸é ó¸® --- RearrangeResultListByMaterial(OtherSideResultList, CombiData, nResultIndex); // --- ÇöÀç¸é ó¸® --- RearrangeResultListByMaterial(ResultList, CombiData, nResultIndex); } else { // Message : ¼¿ ¼³Á¤ÀÌ µÇ¾î ÀÖÁö ¾ÊÀº ¾ÆÀÌÅÛÀÔ´Ï´Ù. MessageDlg(IDS_MESSAGE2, mtConfirmation, TMsgDlgButtons() << mbOK, 0); } } //VecDraw->ClearDataList(VectorList); // À̵¿ÇÏ¿´À¸¹Ç·Î VecDraw->ClearDataList()¸¦ È£ÃâÇÏÁö ¾Ê°í Áö¿öµµ µÈ´Ù delete VectorList; } } } strgrdCell->Repaint(); if (PageFront->ActivePage == TabFront) PaintBox1->Repaint(); else PaintBox2->Repaint(); #endif } //--------------------------------------------------------------------------- void __fastcall TResultForm::strgrdMaterialDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { #ifdef WORKSHEET // ºÎÀÚÀç ¸ñ·Ï ±×¸®±â int nIndex = 0; TFileInfor *fi = NULL; String strText; STYLEDATAFILEHEADER *header; HDC hDC = NULL; TRect r; nIndex = (strgrdMaterial->ColCount * ARow) + ACol; if (nIndex < MaterialImageList->Count && nIndex < MaterialHeaderList->Count) { fi = (TFileInfor *)MaterialImageList->Items[nIndex]; header = (STYLEDATAFILEHEADER *)MaterialHeaderList->Items[nIndex]; if ((hDC = fi->tBitmap->CreateDC()) == NULL) return; BitBlt(strgrdMaterial->Canvas->Handle, Rect.Left+5, Rect.Top+5, fi->tBitmap->Width, fi->tBitmap->Height, hDC, 0, 0, SRCCOPY); fi->tBitmap->DeleteDC(hDC); // StyleID¸¦ Ç¥½ÃÇÑ´Ù strText = String(header->StyleID); r.Left = Rect.Left+5; r.Top = Rect.Top+110; r.Right = Rect.Left+85; r.Bottom = Rect.Top+130; strgrdMaterial->Canvas->TextRect(r, Rect.Left+5, Rect.Top+115, strText); } #endif } //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::SetMaterialComboBox() { // ¼±ÅÃµÈ °á°ú¹°ÀÇ Çì´õ¸¦ ÀÌ¿ëÇÏ¿© ºÎÀÚÀç ¸ñ·ÏÀ» ÄÞº¸¹Ú½º¿¡ ¼ÂÆÃÇÑ´Ù - by monkman (2011.01.25) if (MaterialHeader) { if (MaterialHeader->Division == DV_MAN) { switch (MaterialHeader->Type) { case TP_COAT: DSMaterial = VecDraw->Man_Coat_Mat; memcpy(Cell_Order, VecDraw->Man_Coat_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Coat_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_JACKET: DSMaterial = VecDraw->Man_Jacket_Mat; memcpy(Cell_Order, VecDraw->Man_Jacket_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Jacket_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_JUMPER: DSMaterial = VecDraw->Man_Jumper_Mat; memcpy(Cell_Order, VecDraw->Man_Jumper_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Jumper_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_KNIT: DSMaterial = VecDraw->Man_Knit_Mat; memcpy(Cell_Order, VecDraw->Man_Knit_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Knit_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_SHIRTS: DSMaterial = VecDraw->Man_Shirts_Mat; memcpy(Cell_Order, VecDraw->Man_Shirts_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Shirts_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_TOP: DSMaterial = VecDraw->Man_Top_Mat; memcpy(Cell_Order, VecDraw->Man_Top_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Top_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_VEST: DSMaterial = VecDraw->Man_Vest_Mat; memcpy(Cell_Order, VecDraw->Man_Vest_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Vest_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_PANTS: DSMaterial = VecDraw->Man_Pants_Mat; memcpy(Cell_Order, VecDraw->Man_Pants_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Man_Pants_Cell_Visible, sizeof(bool)*CELL_COUNT); break; } } else if (MaterialHeader->Division == DV_WOMAN) { switch (MaterialHeader->Type) { case TP_COAT: DSMaterial = VecDraw->Woman_Coat_Mat; memcpy(Cell_Order, VecDraw->Woman_Coat_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Coat_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_JACKET: DSMaterial = VecDraw->Woman_Jacket_Mat; memcpy(Cell_Order, VecDraw->Woman_Jacket_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Jacket_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_JUMPER: DSMaterial = VecDraw->Woman_Jumper_Mat; memcpy(Cell_Order, VecDraw->Woman_Jumper_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Jumper_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_KNIT: DSMaterial = VecDraw->Woman_Knit_Mat; memcpy(Cell_Order, VecDraw->Woman_Knit_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Knit_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_SHIRTS: DSMaterial = VecDraw->Woman_Shirts_Mat; memcpy(Cell_Order, VecDraw->Woman_Shirts_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Shirts_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_TOP: DSMaterial = VecDraw->Woman_Top_Mat; memcpy(Cell_Order, VecDraw->Woman_Top_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Top_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_VEST: DSMaterial = VecDraw->Woman_Vest_Mat; memcpy(Cell_Order, VecDraw->Woman_Vest_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Vest_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_ONEPIECE: DSMaterial = VecDraw->Woman_OnePiece_Mat; memcpy(Cell_Order, VecDraw->Woman_OnePiece_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_OnePiece_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_BLOUSE: DSMaterial = VecDraw->Woman_Blouse_Mat; memcpy(Cell_Order, VecDraw->Woman_Blouse_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Blouse_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_PANTS: DSMaterial = VecDraw->Woman_Pants_Mat; memcpy(Cell_Order, VecDraw->Woman_Pants_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Pants_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_SKIRT: DSMaterial = VecDraw->Woman_Skirt_Mat; memcpy(Cell_Order, VecDraw->Woman_Skirt_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Woman_Skirt_Cell_Visible, sizeof(bool)*CELL_COUNT); break; } } else if (MaterialHeader->Division == DV_CHILD) { switch (MaterialHeader->Type) { case TP_COAT: DSMaterial = VecDraw->Child_Coat_Mat; memcpy(Cell_Order, VecDraw->Child_Coat_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Coat_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_JUMPER: DSMaterial = VecDraw->Child_Jumper_Mat; memcpy(Cell_Order, VecDraw->Child_Jacket_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Jacket_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_KNIT: DSMaterial = VecDraw->Child_Knit_Mat; memcpy(Cell_Order, VecDraw->Child_Jumper_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Jumper_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_SHIRTS: DSMaterial = VecDraw->Child_Shirts_Mat; memcpy(Cell_Order, VecDraw->Child_Knit_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Knit_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_VEST: DSMaterial = VecDraw->Child_Vest_Mat; memcpy(Cell_Order, VecDraw->Child_Shirts_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Shirts_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_ONEPIECE: DSMaterial = VecDraw->Child_OnePiece_Mat; memcpy(Cell_Order, VecDraw->Child_Top_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Top_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_CAPE: DSMaterial = VecDraw->Child_Cape_Mat; memcpy(Cell_Order, VecDraw->Child_Vest_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Vest_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_JACKET: DSMaterial = VecDraw->Child_Jacket_Mat; memcpy(Cell_Order, VecDraw->Child_OnePiece_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_OnePiece_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_TOP: DSMaterial = VecDraw->Child_Top_Mat; memcpy(Cell_Order, VecDraw->Child_Blouse_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Blouse_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_BLOUSE: DSMaterial = VecDraw->Child_Blouse_Mat; memcpy(Cell_Order, VecDraw->Child_Cape_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Cape_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_PANTS: DSMaterial = VecDraw->Child_Pants_Mat; memcpy(Cell_Order, VecDraw->Child_Pants_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Pants_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_SKIRT: DSMaterial = VecDraw->Child_Skirt_Mat; memcpy(Cell_Order, VecDraw->Child_Skirt_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Child_Skirt_Cell_Visible, sizeof(bool)*CELL_COUNT); break; } } else if (MaterialHeader->Division == DV_BABY) { switch (MaterialHeader->Type) { case TP_SHIRTS: DSMaterial = VecDraw->Baby_Shirts_Mat; memcpy(Cell_Order, VecDraw->Baby_Shirts_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Baby_Shirts_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_ONEPIECE: DSMaterial = VecDraw->Baby_OnePiece_Mat; memcpy(Cell_Order, VecDraw->Baby_OnePiece_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Baby_OnePiece_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_CAPE: DSMaterial = VecDraw->Baby_Cape_Mat; memcpy(Cell_Order, VecDraw->Baby_Cape_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Baby_Cape_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_ROMPERS: DSMaterial = VecDraw->Baby_Rompers_Mat; memcpy(Cell_Order, VecDraw->Baby_Rompers_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Baby_Rompers_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_PANTS: DSMaterial = VecDraw->Baby_Pants_Mat; memcpy(Cell_Order, VecDraw->Baby_Pants_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Baby_Pants_Cell_Visible, sizeof(bool)*CELL_COUNT); break; case TP_SKIRT: DSMaterial = VecDraw->Baby_Skirt_Mat; memcpy(Cell_Order, VecDraw->Baby_Skirt_Cell_Order, sizeof(BYTE)*CELL_COUNT); memcpy(Cell_Visible, VecDraw->Baby_Skirt_Cell_Visible, sizeof(bool)*CELL_COUNT); break; } } // Material combobxMaterial->Text = ""; combobxMaterial->Items->Clear(); if (MaterialHeader->Type != TP_PANTS && MaterialHeader->Type != TP_SKIRT) { // Upper Material for (int i = 0; i < 127; i++) { if (DSMaterial.Contains(i)) { combobxMaterial->Items->AddObject(VecDraw->UpperMaterialName[i], (TObject *)i); } } } else { // Lower Material for (int i = 0; i < 127; i++) { if (DSMaterial.Contains(i)) { combobxMaterial->Items->AddObject(VecDraw->LowerMaterialName[i], (TObject *)i); } } } if (0 < combobxMaterial->Items->Count) combobxMaterial->ItemIndex = 0; } else { // Material combobxMaterial->Text = ""; combobxMaterial->Items->Clear(); combobxMaterial->Items->AddObject("None", (TObject *)0); combobxMaterial->ItemIndex = 0; } FindMaterialList(); } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::FindMaterialList() { // ºÎÀÚÀç ¸ñ·ÏÀ» °Ë»öÇϰí, È­¸é¿¡ ±×¸± ¼ö ÀÖµµ·Ï ÁغñÇÑ´Ù - by monkman (2011.01.25) // MaterialFileList : °Ë»öµÈ ºÎÀÚÀç ÆÄÀÏ ¸®½ºÆ® // MaterialHeaderList : °Ë»öµÈ ºÎÀÚÀçÀÇ Çì´õ ¸®½ºÆ® // MaterialImageList : °Ë»öµÈ ºÎÀÚÀçÀÇ ±×¸²°¡Áö°í ÀÖ´Â À̹ÌÁö ¸®½ºÆ® EDetailUpperMaterial UpperMaterial; EDetailLowerMaterial LowerMaterial; String strFileName; STYLEDATAFILEHEADER *header = NULL; TList *VectorList = NULL; MaterialFileList->Clear(); // MaterialFileList ÃʱâÈ­ ClearHeaderList(MaterialHeaderList); // MaterialHeaderList ÃʱâÈ­ ClearImageList(MaterialImageList); // MaterialImageList ÃʱâÈ­ // NoneÀº ¼±ÅÃÀÇ Àǹ̰¡ ¾ø´Ù if (MaterialHeader && 0 < combobxMaterial->ItemIndex && combobxMaterial->ItemIndex < combobxMaterial->Items->Count) { if (MaterialHeader->Type != TP_PANTS && MaterialHeader->Type != TP_SKIRT) { // Upper Material UpperMaterial = (EDetailUpperMaterial)combobxMaterial->Items->Objects[combobxMaterial->ItemIndex]; SCF->STYSearch(rzshelltreeMaterialExplorer->SelectedPathName, MaterialHeader->Division, MaterialHeader->Type, SO_UPPERMATRIAL , MIN_YEAR, MIN_SSFW, MAX_YEAR, MAX_SSFW, "", EDetailSilhouette(-1), EDetailSleeve(-1), EDetailCollar(-1), EDetailPants(-1), EDetailBelt(-1) , UpperMaterial, EDetailLowerMaterial(-1)); } else if (MaterialHeader->Type == TP_PANTS || MaterialHeader->Type == TP_SKIRT) { // Lower Material LowerMaterial = (EDetailLowerMaterial) combobxMaterial->Items->Objects[combobxMaterial->ItemIndex]; SCF->STYSearch(rzshelltreeMaterialExplorer->SelectedPathName, MaterialHeader->Division, MaterialHeader->Type, SO_LOWERMATRIAL , MIN_YEAR, MIN_SSFW, MAX_YEAR, MAX_SSFW, "", EDetailSilhouette(-1), EDetailSleeve(-1), EDetailCollar(-1), EDetailPants(-1), EDetailBelt(-1) , EDetailUpperMaterial(-1), LowerMaterial); } VectorList = new TList; // ±×¸²À» ±×¸®±â À§ÇØ »ç¿ëµÇ´Â Àӽà º¤ÅÍ ¸®½ºÆ® if (VectorList) { for (int i = 0; i < SCF->MaterialStrList->Count; i++) { strFileName = SCF->MaterialStrList->Strings[i]; MaterialFileList->Add(strFileName); header = new STYLEDATAFILEHEADER; LoadFromSTYFile(strFileName, header, VectorList); MaterialHeaderList->Add(header); DrawImageList(MaterialImageList, VectorList, 80, 100, -1, 0); // ¾Õ¸é¸¸.. VecDraw->ClearDataList(VectorList); // Àӽà º¤ÅÍ ¸®½ºÆ® ÃʱâÈ­ } delete VectorList; } } VectorList = NULL; strgrdMaterial->Repaint(); } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::ApplyCombiDataToMaterial() { // Cell ¸ñ·Ï ±×¸®±â TCombinationData *CombiData = NULL; TList *CombinationList = NULL; TFileInfor *fi = NULL; int nListIndex = -1; if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; if (MaterialHeader && CombinationList && CombiIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; ClearImageList(CellImageList); for (int i = 0; i < CELL_COUNT; i++) { nListIndex = CombiData->MaterialLayerOrder[i]; if (0 <= nListIndex && nListIndex < CELL_COUNT) { if (0 < CombiData->MaterialDataList[nListIndex]->Count) { // headerÀÇ ³»¿ëÀ» ÅëÇØ ºÎÀÚÀç À§Ä¡¸¦ °áÁ¤ DrawImageList(CellImageList, CombiData->MaterialDataList[nListIndex], strgrdCell->DefaultColWidth-2, strgrdCell->DefaultRowHeight-2, i, -1); } } } } } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET bool __fastcall TResultForm::LoadFromSTYFile(String strFileName, STYLEDATAFILEHEADER *header, TList *VectorList) { // STY ÆÄÀÏÀ» Àоî¿Â´Ù - by monkman (2011.01.25) HANDLE hFile = NULL; int Version; DWORD dwDataSize, dwPos; STYLEDATAFILEHEADER tempHeader; BYTE *StyleData = NULL; TVecData *data = NULL; VecDraw->ClearDataList(VectorList); // ÃʱâÈ­ if (strFileName.IsEmpty() == true || header == NULL || VectorList == NULL) return false; // *.sty ÆÄÀÏÀ» ¹öÀü º°·Î ÀÐ°í º¯È¯ÇÑ´Ù - by monkman (2004.03.30) if ((hFile = CreateFile(strFileName.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto fail; *header = VecDraw->ReadSTYFileHeader(hFile, strFileName, &Version, true); if (!((100 <= Version && Version <= STYSTIFileVersion) || (500 <= Version && Version <= (STYSTIFileVersion+300)))) { // »óÀ§ ¹öÀü üũ - by monkman (2009.05.26) if (hFile) CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; return false; } if (500 <= Version) { #ifndef NOT_STYLEDATA_LOCK // HASP°ú üũ ÇÑ´Ù if (!VecDraw->CheckSTYLock(hFile, header)) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; return false } #endif } if (Version == 0 || Version == 100) { // Version 100 ÀÏ °æ¿ì ¸ø Àд ¿¡·¯·Î ±ä±ÞÃß°¡ - by monkman (2005.06.10) dwDataSize = GetFileSize(hFile, NULL) - sizeof(OLDSTYLEDATAFILEHEADER); } else { dwDataSize = GetFileSize(hFile, NULL) - sizeof(STYLEDATAFILEHEADER); } if ((StyleData = (BYTE *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwDataSize))==NULL) goto fail; // ÆÄÀÏÅ©±â¸¸Å­ ¸Þ¸ð¸® ÇÒ´ç VecDraw->ReadSTYFileData(hFile, Version, StyleData, *header); dwPos = 0; for (int i = 0; i < header->Count1; i++) { if ((data = new TVecData(0))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); VectorList->Add(data); } for (int i = 0; i < header->Count2; i++) { if ((data = new TVecData(1))==NULL) goto fail; VecDraw->LoadFromSTYMemory(&StyleData, &dwPos, data, Version); VectorList->Add(data); } if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; return true; fail: if (StyleData) { HeapFree(GetProcessHeap(), 0, StyleData); // ¸Þ¸ð¸® ÇØÁ¦ StyleData = NULL; } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; return false; } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::ClearHeaderList(TList *HeaderList) { // Çì´õ ¸®½ºÆ®¸¦ ÃʱâÈ­ÇÑ´Ù - by monkman (2011.01.15) STYLEDATAFILEHEADER *header = NULL; for (int i = 0; i < HeaderList->Count; i++) { header = (STYLEDATAFILEHEADER *) HeaderList->Items[i]; if (header) delete header; header = NULL; } HeaderList->Clear(); } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::ClearImageList(TList *ImageList) { // À̹ÌÁö ¸®½ºÆ®¸¦ ÃʱâÈ­ÇÑ´Ù - by monkman (2011.01.25) TFileInfor *fi = NULL; for (int i = 0; i < ImageList->Count; i++) { fi = (TFileInfor *) ImageList->Items[i]; if (fi) { if (fi->tBitmap) delete fi->tBitmap; fi->tBitmap = NULL; delete fi; } fi = NULL; } ImageList->Clear(); } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET bool __fastcall TResultForm::DrawImageList(TList *ImageList, TList *VectorList , int nWidth, int nHeight, int nImageIndex, int nInstNum) { // º¤ÅÍ À̹ÌÁö ¸®½ºÆ®¸¦ ¸¸µç´Ù (Tag) - by monkman (2011.01.25) TFileInfor *fi = NULL; HDC dcTemp = NULL; if (nImageIndex == -1 || ImageList->Count <= nImageIndex) fi = new TFileInfor; // Ãß°¡ÇÏ´Â °æ¿ì else if (0 <= nImageIndex && nImageIndex < ImageList->Count) fi = (TFileInfor *)ImageList->Items[nImageIndex]; // ¼öÁ¤ÇÏ´Â °æ¿ì else goto fail; if (fi) { if (fi->tBitmap) delete fi->tBitmap; if ((fi->tBitmap = new TTexpiaBitmap) == NULL) goto fail; fi->tBitmap->Create(nWidth, nHeight, 24); fi->tBitmap->FillRect(Rect(0, 0, nWidth, nHeight), clWhite); if ((dcTemp = fi->tBitmap->CreateDC()) == NULL) goto fail; // nInstNum (0:¾Õ¸é, 1:µÞ¸é) CombiForm->TagDraw(dcTemp, VectorList, nInstNum, 0, 0, nWidth, nHeight); fi->tBitmap->DeleteDC(dcTemp); dcTemp = NULL; if (nImageIndex == -1 || ImageList->Count <= nImageIndex) ImageList->Add(fi); // Ãß°¡ÇÏ´Â °æ¿ì } return true; fail: return false; } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::RearrangeResultListByMaterial(TList *VectorList, TCombinationData *CombiData, int nResultIndex) { TList *MoveList[CELL_COUNT]; int nListIndex, nInstNum, nBeginInstNum, nEndInstNum; TVecData *data = NULL; for (int i = 0; i < CELL_COUNT; i++) { MoveList[i] = new TList; } nBeginInstNum = nResultIndex; nEndInstNum = nResultIndex + CELL_COUNT; for (int i = 0; i < VectorList->Count; i++) { data = (TVecData *)VectorList->Items[i]; nInstNum = data->GetInstNum(); // ¿øº»À» Á¦¿ÜÇϰí, ¼¿ ¼ø¼­´ë·Î °ñ¶ó³½´Ù if (nResultIndex <= nInstNum) { MoveList[(nInstNum-nResultIndex) % CELL_COUNT]->Add(data); VectorList->Delete(i); i--; } } for (int i = 0; i < CELL_COUNT; i++) { nListIndex = CombiData->MaterialLayerOrder[i]; if (0 <= nListIndex && nListIndex < CELL_COUNT) { // ºÎÀÚÀç ·¹ÀÌ¾î ¼ø¼­´ë·Î ²¨³»¾î ´ã´Â´Ù for (int j = 0; j < MoveList[nListIndex]->Count; j++) { data = (TVecData *)MoveList[nListIndex]->Items[j]; VectorList->Add(data); } } } // ÃʱâÈ­ for (int i = 0; i < CELL_COUNT; i++) { if (MoveList[i]) delete MoveList[i]; } } #endif //--------------------------------------------------------------------------- #ifdef WORKSHEET void __fastcall TResultForm::MaterialMove(WORD Key) { TPaintBox *PaintBox = NULL; TVecData *data = NULL; TCombinationData *CombiData = NULL; int nResultIndex = 0, nListIndex = 0, nInstanceIndex = 0; POINT ptDiff; TList *CombinationList = NULL, *ResultList = NULL; // °á°ú ¸®½ºÆ® ptDiff.x = 0; ptDiff.y = 0; switch (Key) { case VK_UP: ptDiff.y = -1; break; case VK_LEFT: ptDiff.x = -1; break; case VK_DOWN: ptDiff.y = 1; break; case VK_RIGHT: ptDiff.x = 1; break; } if (PageFront->ActivePage == TabFront) PaintBox = PaintBox1; else PaintBox = PaintBox2; if (rbUp->Checked == true) CombinationList = UpperCombinationList; else if (rbDown->Checked == true) CombinationList = LowerCombinationList; else if (rbCheck->Checked == true) CombinationList = CheckCombinationList; if (PaintBox) { // °á°ú ¸®½ºÆ® ã±â if (rbUp->Checked == true) { if (PageFront->ActivePage == TabFront) ResultList = UpResultFrontList; else if (PageFront->ActivePage == TabBack) ResultList = UpResultBackList; } else if (rbDown->Checked == true) { if (PageFront->ActivePage == TabFront) ResultList = DownResultFrontList; else if (PageFront->ActivePage == TabBack) ResultList = DownResultBackList; } else if (rbCheck->Checked == true) { if (PageFront->ActivePage == TabFront) ResultList = CheckResultFrontList; else if (PageFront->ActivePage == TabBack) ResultList = CheckResultBackList; } if (CombinationList && CombiIndex < CombinationList->Count) { CombiData = (TCombinationData *)CombinationList->Items[CombiIndex]; // °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Â ¸ðµç °³¼ö + (ÇöÀç °á°ú À§Ä¡) * CELL_COUNT + ºÎÀÚÀç ¼¿ÀÇ À§Ä¡ nResultIndex = (StringGrid1->ColCount * StringGrid1->RowCount) + (StringGrid1->ColCount * row + col) * CELL_COUNT; nListIndex = CombiData->MaterialLayerOrder[strgrdCell->Col]; if (0 <= nListIndex && nListIndex < CELL_COUNT) { nInstanceIndex = nResultIndex + nListIndex; for (int j = 0; j < ResultList->Count; j++) { // SET_RECT¸¦ ÀÌ¿ëÇϱâ À§ÇØ iterator º¯¼ö¸¦ j·Î ÇØ¾ßÇÔ - by monkman (2011.02.18) data = (TVecData *)ResultList->Items[j]; if (data->Equal(nInstanceIndex)) { if (data->Kind == V_CURVE) { for (int k = 0; k < data->nCount*3+1; k++) { // SET_RECT¸¦ ÀÌ¿ëÇϱâ À§ÇØ iterator º¯¼ö¸¦ k·Î ÇØ¾ßÇÔ - by monkman (2011.02.18) data->pList[k].x += ptDiff.x; data->pList[k].y += ptDiff.y; } SET_RECT; } } } } } } PaintBox->Repaint(); } #endif //--------------------------------------------------------------------------- void __fastcall TResultForm::edForMaterialFocusMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { // } //---------------------------------------------------------------------------