// --------------------------------------------------------------------------- #include #include #pragma hdrstop #include "LogData.h" #include "Fabric3D_F.h" #include "MainImage.h" #include "Menu3D_F.h" #include "Palette.h" #include "ViewPattern_F.h" #include "LeadToolsFileOption.h" #include "MainMenu.h" #include "Window.h" #include "Windowlib_F.h" // ==========================for fit point by kjs #include "Main.h" // ============================ // --------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "RzEdit" #pragma link "RzSpnEdt" #pragma link "RzFilSys" #pragma link "RzShellCtrls" #pragma link "RzTreeVw" #pragma link "RzCmboBx" #pragma link "TNumEdit" #pragma link "RzPanel" #pragma link "RzTabs" #pragma link "RzButton" #pragma link "RzRadChk" #pragma link "RzLabel" #pragma link "RzBckgnd" #pragma link "RzRadGrp" #pragma resource "*.dfm" #pragma resource "FileIcon.res" // --------------------------------------------------------------------------- #define IDS_SELECTEDFABRIC StringTable[0] #define IDS_GROUP StringTable[1] #define IDS_GROUP1 StringTable[2] #define IDS_GROUP2 StringTable[3] #define IDS_GROUP3 StringTable[4] #define IDS_GROUP4 StringTable[5] #define IDS_GROUP5 StringTable[6] #define IDS_GROUP6 StringTable[7] #define IDS_GROUP7 StringTable[8] #define IDS_GROUP8 StringTable[9] #define IDS_FABRIC StringTable[10] #define IDS_RATIO StringTable[11] #define IDS_OVERLAY StringTable[12] #define IDS_ADD StringTable[13] #define IDS_REPLACE StringTable[14] #define IDS_SIMULATION StringTable[15] #define IDS_STANDARDPATTERN StringTable[16] #define IDS_SELECTPATTERN StringTable[17] #define IDS_FABRICNAME StringTable[18] #define IDS_SIZE StringTable[19] #define IDS_LAT StringTable[20] #define IDS_LARGE StringTable[21] #define IDS_SMALL StringTable[22] #define IDS_REPORT StringTable[23] #define IDS_EFFECT StringTable[24] #define IDS_SINGLECOLOR StringTable[25] #define IDS_lbSimulationType StringTable[26] #define IDS_cbSizeRatio StringTable[27] #define IDS_cbSizeEach StringTable[28] #define IDS_cbSizeModel StringTable[29] #define IDS_cbPoint StringTable[30] #define IDS_spPoint StringTable[31] // --------------------------------------------------------------------------- __fastcall TFabric3DForm::TFabric3DForm(TComponent* Owner) : TForm(Owner) { Lstore = 0; Sstore = 0; PatternForm = NULL; int i; TIniFile *IniFile = 0; String IniDirName; TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; // ========================================================================= StringTable.Create(DirectoryItem, Language, "Fabric3D"); SetSmallFont(Font); // SetSmallFont(lbGroup1->Font); // SetSmallFont(lbGroup2->Font); // SetSmallFont(lbGroup3->Font); // SetSmallFont(lbGroup4->Font); GroupBox1->Caption = IDS_SELECTEDFABRIC; lbGroup->Caption = IDS_GROUP; lbGroup1->Caption = IDS_GROUP1; lbGroup2->Caption = IDS_GROUP2; lbGroup3->Caption = IDS_GROUP3; lbGroup4->Caption = IDS_GROUP4; lbGroupFabric->Caption = IDS_FABRIC; lbFabric->Caption = IDS_FABRIC; lbRatio->Caption = IDS_RATIO; lbShadow->Caption = IDS_OVERLAY; sbSimulation->Caption = IDS_SIMULATION; sbStandard->Hint = IDS_STANDARDPATTERN; sbSelect->Hint = IDS_SELECTPATTERN; sbLarge->Hint = IDS_LARGE; sbSmall->Hint = IDS_SMALL; sbReport->Hint = IDS_REPORT; // Simulation->Caption = IDS_SIMULATION; cbEffect->Caption = IDS_EFFECT; sbOneColorPattern->Hint = IDS_SINGLECOLOR; sbAdd->Hint = IDS_ADD; sbReplace->Hint = IDS_REPLACE; sbDelete->Hint = IDS_COMMON_DELETE; // lbSimulationType->Caption = IDS_lbSimulationType; cbSize->Items->Clear(); cbSize->Items->Add(IDS_cbSizeRatio); cbSize->Items->Add(IDS_cbSizeEach); cbSize->Items->Add(IDS_cbSizeModel); cbPoint->Caption = IDS_cbPoint; // spPoint->Caption = IDS_spPoint; // ========================================================================= IniFile = new TIniFile(AppDataItem + "\\Main.ini"); if (IniFile) { IniDirName = IniFile->ReadString("FileManager", "DirectoryName", "C:\\"); if (SetCurrentDir(IniDirName)) DirListBox->SelectedPathName = IniDirName; else DirListBox->SelectedPathName = "C:\\"; // DirListBox->ItemIndex = IniFile->ReadInteger("FileManager", "DirectoryIndex", 0); delete IniFile; } TListColumn *pColumn = 0; pColumn = lvView->Columns->Add(); pColumn->Caption = IDS_FABRICNAME; pColumn->Width = 100; pColumn = lvView->Columns->Add(); pColumn->Caption = IDS_SIZE; pColumn->Width = 50; pColumn = lvView->Columns->Add(); pColumn->Caption = IDS_LAT; pColumn->Width = 120; FilterComboBox->ItemIndex = 0; Tag = 0; lvSelect->Items->Clear(); ImageList->Clear(); if (sbLarge->Down) lvView->ViewStyle = vsIcon; else if (sbSmall->Down) lvView->ViewStyle = vsSmallIcon; else lvView->ViewStyle = vsReport; SetGroup(); InitData(); sbTie->Down = false; pnTie->Visible = false; if (FileList->Count) ViewTag(); if (!FileList->Count || MainImageForm->Data3D->FabricList->Count >= 8) sbAdd->Enabled = false; else sbAdd->Enabled = true; sbSelect->Enabled = MainImageForm->Data3D->CopyCount > 0; Screen->Cursor = OldCursor; bfWidth = Width; // ================================ for fit point by kjs GroupIndex = -1; GridIndex = -1; // ================================ for fit point by kjs } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormCreate(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); if (!FileList) FileList = new TList; END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormDestroy(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); lvSelect->Items->Clear(); ImageList->Clear(); InitData(); // ================================ for fit point by kjs if (MainImageForm->iMainImage->OnPaintZoom) { MainImageForm->iMainImage->OnPaintZoom = NULL; MainImageForm->iMainImage->Invalidate(); } Menu3DForm->DeleteGridPen(); doDestroy(PatternForm) if (FileList) { ClearFileList(); delete FileList; FileList = NULL; } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormShow(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); int i, j, fcnt, scan, w, h, cnt; TPException ec; double rx, ry; RECT r; Byte *MP; WORD bpp; Graphics::TBitmap *Bitmap = NULL; TTexpiaBitmap *cb = NULL; TFabricData *f; TListItem *pItem; TFabricData *c; HDC dc = NULL; TData3D *dp = MainImageForm->Data3D; // ====================================== for fit size and point by kjs cbSize->ItemIndex = dp->SizeItem; cbSizeChange(NULL); if ((dp->GridCount > 0) && (MainImageForm->Data3D->CopyCount == 0)) { cbPoint->Enabled = true; // cbPoint->Checked = dp->FitPoint; // if (cbPoint->Checked) spPoint->Enabled = true; // else spPoint->Enabled = false; // if (dp->FitPoint) spPoint->Enabled = true; // else spPoint->Enabled = false; } else { cbPoint->Enabled = false; // spPoint->Enabled = false; } // ====================================== ImageList->Clear(); lvSelect->Items->Clear(); if ((cb = new TTexpiaBitmap) == NULL) goto fail; for (i = 0; i < MainImageForm->Data3D->FabricList->Count; i++) { c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[i]; if ((Bitmap = new Graphics::TBitmap) == NULL) goto fail; Bitmap->PixelFormat = pf24bit; Bitmap->Width = 80; Bitmap->Height = 100; rx = 80.0 / c->Size.x; ry = 100.0 / c->Size.y; if (rx > ry) { w = c->Size.x * ry; h = c->Size.y * ry; } else { w = c->Size.x * rx; h = c->Size.y * rx; } if (!cb->Create(c->Size.x, c->Size.y, 24)) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); goto fail; } cb->LoadFromMemory(c->Fabric->ScanLine(), c->Fabric->BytesPerLine); cb->ColorSpace = csHLS; cb->ConvertColorSpace(csRGB); if ((dc = cb->CreateDC()) == NULL) { ec = EC_RESOURCE_LACK; SAVE_EXCEPTION(ec); goto fail; } SetStretchBltMode(Bitmap->Canvas->Handle, COLORONCOLOR); StretchBlt(Bitmap->Canvas->Handle, 0, 0, w, h, dc, 0, 0, c->Size.x, c->Size.y, SRCCOPY); cb->DeleteDC(dc); dc = NULL; cb->ConvertColorSpace(csHLS); ImageList->Add(Bitmap, NULL); delete Bitmap; Bitmap = NULL; pItem = lvSelect->Items->Add(); pItem->ImageIndex = pItem->Index; // ¿À¸§Â÷¼ø Á¤·ÄµÇµµ·Ï ¼öÁ¤ - by monkman (2010.03.22) lvSelect->CustomSort(NULL, pItem->Index); /* // show_fabric() ¿¡¼­ ÇÔ. if (0 == pItem->Index) pItem->Caption = "A"; else if (1 == pItem->Index) pItem->Caption = "B"; else if (2 == pItem->Index) pItem->Caption = "C"; else if (3 == pItem->Index) pItem->Caption = "D"; else if (4 == pItem->Index) pItem->Caption = "E"; else if (5 == pItem->Index) pItem->Caption = "F"; else if (6 == pItem->Index) pItem->Caption = "G"; else if (7 == pItem->Index) pItem->Caption = "H"; */ } delete cb; cb = NULL; if (MainImageForm->Data3D->GridCount > 0 && MainImageForm->Data3D->FabricList->Count > 0) { sbReplace->Enabled = true; sbDelete->Enabled = true; sbSimulation->Enabled = true; // Simulation->Enabled = true; } else { sbReplace->Enabled = false; sbDelete->Enabled = false; sbSimulation->Enabled = false; // Simulation->Enabled = false; } cnt = 0; for (i = 0; i < T3DF_CNT; i++) { if (MainImageForm->Data3D->fn[i].cnt) cnt++; } lbGroupCount->Caption = "Group Count : " + String(cnt); for (int i = 0; i < 8; i++){ if (i < cnt){ if (i == 0) lbGroup1->Font->Color = clBlue; if (i == 1) lbGroup2->Font->Color = clBlue; if (i == 2) lbGroup3->Font->Color = clBlue; if (i == 3) lbGroup4->Font->Color = clBlue; if (i == 4) lbGroup5->Font->Color = clBlue; if (i == 5) lbGroup6->Font->Color = clBlue; if (i == 6) lbGroup7->Font->Color = clBlue; if (i == 7) lbGroup8->Font->Color = clBlue; } else { if (i == 0) lbGroup1->Font->Color = clGray; if (i == 1) lbGroup2->Font->Color = clGray; if (i == 2) lbGroup3->Font->Color = clGray; if (i == 3) lbGroup4->Font->Color = clGray; if (i == 4) lbGroup5->Font->Color = clGray; if (i == 5) lbGroup6->Font->Color = clGray; if (i == 6) lbGroup7->Font->Color = clGray; if (i == 7) lbGroup8->Font->Color = clGray; } } if (!(MainImageForm->Data3D->GroupList[0].Filter & 0x80)) cbEffect->Checked = true; else { seAve1->Value = 3; seAve2->Value = 3; seAve3->Value = 3; seAve4->Value = 3; seAve5->Value = 3; seAve6->Value = 3; seAve7->Value = 3; seAve8->Value = 3; } Show_FabricSize(); END_LOG; return; fail: if (Bitmap) delete Bitmap; if (cb) { if (dc) cb->DeleteDC(dc); delete cb; } EXCEPTION_MESSAGE_OK(ec); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::sbReportClick(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); int i; TSpeedButton *s = (TSpeedButton*)Sender; if (s->Tag == 0) { for (i = 0; i < FileList->Count; i++) { lvView->Items->Item[i]->ImageIndex = i; } lvView->ViewStyle = vsIcon; } else if (s->Tag == 1) { for (i = 0; i < FileList->Count; i++) { lvView->Items->Item[i]->ImageIndex = FilterComboBox->ItemIndex; } lvView->ViewStyle = vsSmallIcon; } else { for (i = 0; i < FileList->Count; i++) { lvView->Items->Item[i]->ImageIndex = FilterComboBox->ItemIndex; } lvView->ViewStyle = vsReport; } if (!FileList->Count || (MainImageForm->Data3D->FabricList->Count >= 8)) sbAdd->Enabled = false; else sbAdd->Enabled = true; lvView->Invalidate(); //---- view styleÀ» º¯°æÇÒ¶§ ¾ÆÀÌÄÜÀÌ °ãÃÄÁö´Â ¹®Á¦·Î Ãß°¡ - shin if (FileList->Count){ lvView->Items->Clear(); LTagList->Clear(); STagList->Clear(); ViewTag(); } //---- END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::FilterComboBoxChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; InitData(); if (FileList->Count) ViewTag(); if (!FileList->Count || (MainImageForm->Data3D->FabricList->Count >= 8)) sbAdd->Enabled = false; else sbAdd->Enabled = true; Screen->Cursor = OldCursor; END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvSelectDblClick(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TListItem *pItem; Char *abc[8] = { L"A", L"B", L"C", L"D", L"E", L"F", L"G", L"H" }; TFabricData *c; int i, j, n; if (sbDelete->Down) { n = lvSelect->Items->IndexOf(lvSelect->ItemFocused); lvSelect->Items->Delete(n); // ¿À¸§Â÷¼ø Á¤·ÄµÇµµ·Ï ¼öÁ¤ - by monkman (2010.03.22) if (lvSelect->ItemFocused) lvSelect->CustomSort(NULL, lvSelect->ItemFocused->Index); ImageList->Delete(n); c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[n]; delete c; MainImageForm->Data3D->FabricList->Remove(c); for (i = 0; i < T3DF_CNT; i++) { j = MainImageForm->Data3D->GroupList[i].FIndex; if (j > 0) { if (j <= MainImageForm->Data3D->FabricList->Count) { c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[j - 1]; MainImageForm->Data3D->GroupList[i].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[i].FMean = c->Mean; } else { MainImageForm->Data3D->GroupList[i].FIndex = 0; if (i == lbGroup1->Tag - 1) cbFabric1->ItemIndex = 0; else if (i == lbGroup2->Tag - 1) cbFabric2->ItemIndex = 0; else if (i == lbGroup3->Tag - 1) cbFabric3->ItemIndex = 0; else if (i == lbGroup4->Tag - 1) cbFabric4->ItemIndex = 0; } } } for (i = n; i < lvSelect->Items->Count; i++) { pItem = lvSelect->Items->Item[i]; pItem->ImageIndex = i; pItem->Caption = abc[i]; } lvSelect->Arrange(Comctrls::arDefault); // 2001.3.27. lhskys C++Builder 5 ¿¡¼­ ÀǽÉ.... // lvSelect->Arrange(arDefault); //2001.3.27. lhskys C++Builder 5 ¿¡¼­ if (lvSelect->Items->Count == 0) { sbReplace->Enabled = false; sbDelete->Enabled = false; sbAdd->Enabled = true; sbAdd->Down = true; } if (MainImageForm->Data3D->FabricList->Count < 8) { sbAdd->Enabled = true; sbAdd->Down = false; } replaceSW = false; Show_FabricSize(); } else if (sbReplace->Down) { replaceSW = true; } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvViewDblClick(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); HANDLE hFile = INVALID_HANDLE_VALUE; int x, y, w, bitsize, i, j, k; int m; TEXPIAFILEHEADER tpfh; RGBQUAD rgb[256]; BITMAPHANDLE fh; Byte mean; TPException ec = EC_NONE; // TTexpiaBitmap *pBitmap = NULL; TUnionBitmap *pBitmap = NULL; TPBitmap *pFabric = NULL; TCursor OldCursor; PALETTEENTRY peEntry[256]; if (sbAdd->Down || (sbReplace->Down && replaceSW)) { if ((MainImageForm->Data3D->FabricList->Count < 8) || MainImageForm->Data3D->FabricList->Count == 8 && sbReplace->Down && replaceSW) { if (lvView->Selected == NULL) { END_LOG; return; } OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; String wfn = lvView->Items->Item[lvView->Selected->Index]->Caption; String wPath = FullPathName(DirListBox->SelectedPathName, wfn); if ((pBitmap = new TUnionBitmap) == NULL) goto fail; #ifdef TRIAL if ((FilterComboBox->ItemIndex >= 0 && FilterComboBox->ItemIndex < 4) || (FilterComboBox->ItemIndex == 0 + 4 || FilterComboBox->ItemIndex == 1 + 4 || FilterComboBox->ItemIndex == 12 + 4 || FilterComboBox->ItemIndex == 13 + 4)) #else if (FilterComboBox->ItemIndex == 0 || FilterComboBox->ItemIndex == 1 || FilterComboBox->ItemIndex == 12 || FilterComboBox->ItemIndex == 13) #endif { if ((hFile = CreateFile(wPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { ec = EC_FILE_NOT_OPEN; SAVE_EXCEPTION(ec); goto fail; } #ifdef TRIAL if (FilterComboBox->ItemIndex >= 0 && FilterComboBox->ItemIndex < 4) { if ((ec = LoadFromTexpiaFile(hFile, MainImageForm->Palette, tpfh, pBitmap, FindExtension(ExtractFileExt(wPath)), true, NULL, true)) != EC_NONE) goto fail; } else { if ((ec = LoadFromTexpiaFile(hFile, MainImageForm->Palette, tpfh, pBitmap, FindExtension(ExtractFileExt(wPath)))) != EC_NONE) goto fail; } #else if ((ec = LoadFromTexpiaFile(hFile, MainImageForm->Palette, tpfh, pBitmap, FindExtension(ExtractFileExt(wPath)))) != EC_NONE) goto fail; #endif CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; ProgressBar->Position = 30; pBitmap->ColorResolution(24, CRF_BYTEORDERBGR, NULL, 0); /* #ifdef TRIAL TTexpiaBitmap *tempBitmap = new TTexpiaBitmap; tempBitmap->Create(pBitmap->Width, pBitmap->Height, 24); pBitmap->CopyToTexpia(tempBitmap, 0, 0, pBitmap->Width, pBitmap->Height, 0, 0, SRCCOPY); HDC dcDst = tempBitmap->CreateDC(); PaintWaterMark(dcDst, 0, 0, tempBitmap->Width, tempBitmap->Height, 1, 2, random(2) ? random(30)+10 : random(30)+320); tempBitmap->DeleteDC(dcDst); pBitmap->Copy(tempBitmap, SRCCOPY); delete tempBitmap; #endif */ if ((pFabric = new TPBitmap) == NULL) goto fail; if (!pFabric->Create(pBitmap->Width, pBitmap->Height, 24)) goto fail; if (pFabric->Lock() == NULL) goto fail; pBitmap->ConvertColorSpace(csHLS); pBitmap->SaveToMemory(pFabric->ScanLine(), pFabric->BytesPerLine, Rect (0, 0, pBitmap->Width, pBitmap->Height)); k = 0; m = 0; for (i = 0; i < pBitmap->Height; i++) { for (j = 0; j < pBitmap->Width; j++) { // m += *(pFabric->ScanLine(i)+j*3+1); m += *(pFabric->ScanLine(i) + j * 3); k++; } } mean = (double)m / (double)k; delete pBitmap; pBitmap = NULL; ProgressBar->Position = 60; if (!Choice(pFabric, mean)) goto fail; PaletteForm->DIB256Palette->Repaint(); ProgressBar->Position = 100; // ÆÈ·¹Æ® ÃʱâÈ­ by bomchun if (!MainImageForm->Palette->LoadFromFile ((DirectoryColor + "\\Textile.fcr").c_str())) { GetSystemPaletteEntries(Canvas->Handle, 0, 256, peEntry); for (int i = 3; i < 255; i++) { MainImageForm->Palette->SetNormal (i, peEntry[i].peRed, peEntry[i].peGreen, peEntry[i].peBlue); } MainImageForm->Palette->SetNormal(0, 0, 0, 0); MainImageForm->Palette->SetNormal(1, 255, 255, 255); MainImageForm->Palette->SetNormal(2, 0, 0, 0); MainImageForm->Palette->SetNormal(255, 255, 255, 255); } PaletteForm->DIB256Palette->Repaint(); // ÆÈ·¹Æ® ÃʱâÈ­ by bomchun } else { if (!pBitmap->LoadFromFile(wPath)) { ec = EC_FILE_NOT_READ; SAVE_EXCEPTION(ec); goto fail; } ProgressBar->Position = 30; pBitmap->ColorResolution(24, CRF_BYTEORDERBGR, NULL, 0); #ifdef TRIAL TTexpiaBitmap *tempBitmap = new TTexpiaBitmap; tempBitmap->Create(pBitmap->Width, pBitmap->Height, 24); pBitmap->CopyToTexpia(tempBitmap, 0, 0, pBitmap->Width, pBitmap->Height, 0, 0, SRCCOPY); HDC dcDst = tempBitmap->CreateDC(); PaintWaterMark(dcDst, 0, 0, tempBitmap->Width, tempBitmap->Height, 1, 2, random(2) ? random(30) + 10 : random(30) + 320); tempBitmap->DeleteDC(dcDst); pBitmap->Copy(tempBitmap, SRCCOPY); delete tempBitmap; #endif if ((pFabric = new TPBitmap) == NULL) goto fail; if (!pFabric->Create(pBitmap->Width, pBitmap->Height, 24)) goto fail; if (pFabric->Lock() == NULL) goto fail; pBitmap->ConvertColorSpace(csHLS); pBitmap->SaveToMemory(pFabric->ScanLine(), pFabric->BytesPerLine, Rect (0, 0, pBitmap->Width, pBitmap->Height)); k = 0; m = 0; for (i = 0; i < pBitmap->Height; i++) { for (j = 0; j < pBitmap->Width; j++) { // m += *(pFabric->ScanLine(i)+j*3+1); m += *(pFabric->ScanLine(i) + j * 3); k++; } } mean = (double)m / (double)k; delete pBitmap; pBitmap = NULL; ProgressBar->Position = 60; if (!Choice(pFabric, mean)) goto fail; ProgressBar->Position = 100; } if (MainImageForm->Data3D->FabricList->Count == 8) sbAdd->Enabled = false; sbSimulation->Enabled = true; // Simulation->Enabled = true; MainImageForm->Modify = true; ProgressBar->Position = 0; Screen->Cursor = OldCursor; Show_FabricSize(); } } END_LOG; return; fail: if (pFabric) delete pFabric; if (hFile != INVALID_HANDLE_VALUE) CloseHandle(hFile); if (pBitmap) delete pBitmap; if (ec == EC_NONE) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); } Screen->Cursor = OldCursor; EXCEPTION_MESSAGE_OK(ec); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::sbSimulationClick(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); RECT r; int i, kindoffail = 0; Menu3DForm->Lengthstep = 0; if (Menu3DForm->CopySelect <= 0 && sbSelect->Down) { ShowMessage("Click middle button to SelectPattern"); sbSimulation->Down = false; END_LOG; return; } TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; // =================================================== for fit point by kjs HidePatternForm(); // re-edit by k3dogs 20010207 switch(MainImageForm->Data3D->SizeItem) { case 0: break; case 1: if (MainImageForm->Data3D->I_Length <= 0) goto fail; if (MainImageForm->Data3D->M_Length <= 0) { kindoffail = 1; goto fail; } for (i = 0; i < 8; i++) { if (MainImageForm->Data3D->F_Length[i] <= 0) { kindoffail = 2; goto fail; } } break; case 2: if (MainImageForm->Data3D->I_Length <= 0) goto fail; if (MainImageForm->Data3D->M_Length <= 0) { kindoffail = 1; goto fail; } break; } // =================================================== MainImageForm->iMainImage->Repaint(); if (MainImageForm->iMainImage->Mask == NULL) { MainImageForm->iMainImage->Mask = new TUnionBitmap; // convert by celberus MainImageForm->iMainImage->Mask->Create (MainImageForm->iMainImage->uBitmap->Width, MainImageForm->iMainImage->uBitmap->Height, 1); SetRect(&r, 0, 0, MainImageForm->iMainImage->uBitmap->Width, MainImageForm->iMainImage->uBitmap->Height); MainImageForm->iMainImage->Mask->FillRect(r, 0); MainImageForm->MaskArea = true; } bSC_Simulation = false; // º¹»çÇÑ ÈÄ Àüü»èÁ¦¸¦ ÇÏ°í ³ª¿Ã¶§, if (sbStandard->Down) { // Simulation»óŸ¦ üũÇϱâ À§Çؼ­... if (MainImageForm->Data3D->CopyCount > 0) { Menu3DForm->t_3d_copy_simulation(0); if (cbPoint->Checked) bSC_Simulation = true; } else { // Menu3DForm->t_3d_simulation(); Menu3DForm->t_3d_simulation(MainImageForm->Data3D->FitPoint); } } else if (sbSelect->Down) { Menu3DForm->t_3d_copy_simulation(); if (cbPoint->Checked) bSC_Simulation = true; } MainImageForm->ResetDraw(); // lhskys Á÷¼± ÀÜ»ó Á¦°Å¸¦ À§Çؼ­ #ifdef TRIAL // MainImageForm->WaterMarkPaint = true; #endif ::RepaintImage(); sbSimulation->Down = false; cbPoint->Checked = false; ProgressBar->Position = 0; Menu3DForm->sbMCopy->Enabled = true; Screen->Cursor = OldCursor; END_LOG; return; fail: sbSimulation->Down = false; ProgressBar->Position = 0; Menu3DForm->sbMCopy->Enabled = true; Screen->Cursor = OldCursor; switch(kindoffail) { case 0: ShowMessage("You didn't set size of model!"); break; case 1: ShowMessage("Invalid value in Model Size!"); break; case 2: ShowMessage("Invalid value in Fabric!"); break; } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::eRatioXKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("Fabric3D_F"); TNumEdit *eRatio = (TNumEdit*)Sender; if (Key == VK_RETURN) { if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[i].FRatio.x = eRatio->IntValue; } else { eRatio->Value = 100; } } } } else { int index = eRatio->Tag; if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[index].FRatio.x = eRatio->IntValue; } else { eRatio->Value = 100; } } MainImageForm->Modify = true; g_FocusControl->SetFocus(); } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::EditMouseDown (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TNumEdit *s = (TNumEdit*)Sender; s->SetFocus(); s->SelectAll(); } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::StaticTextClick(TObject *Sender) { /* TStaticText *s = (TStaticText *)Sender; if (1 == s->Tag) { s->Caption = IDS_GROUP5; s->Tag = 5; cbFabric1->Text = cbFabric1->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX1->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY1->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio1->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAvg1->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (2 == s->Tag) { s->Caption = IDS_GROUP6; s->Tag = 6; cbFabric2->Text = cbFabric2->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX2->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY2->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio2->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve2->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (3 == s->Tag) { s->Caption = IDS_GROUP7; s->Tag = 7; cbFabric3->Text = cbFabric3->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX3->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY3->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio3->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve3->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (4 == s->Tag) { s->Caption = IDS_GROUP8; s->Tag = 8; cbFabric4->Text = cbFabric4->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX4->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY4->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio4->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve4->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (5 == s->Tag) { s->Caption = IDS_GROUP1; s->Tag = 1; cbFabric1->Text = cbFabric1->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX1->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY1->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio1->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAvg1->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (6 == s->Tag) { s->Caption = IDS_GROUP2; s->Tag = 2; cbFabric2->Text = cbFabric2->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX2->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY2->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio2->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve2->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (7 == s->Tag) { s->Caption = IDS_GROUP3; s->Tag = 3; cbFabric3->Text = cbFabric3->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX3->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY3->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio3->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve3->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } else if (8 == s->Tag) { s->Caption = IDS_GROUP4; s->Tag = 4; cbFabric4->Text = cbFabric4->Items->Strings[MainImageForm->Data3D->GroupList[s->Tag - 1].FIndex]; eRatioX4->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY4->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio4->Value = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve4->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } */ } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ComboBoxChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TRzComboBox *s = (TRzComboBox*)Sender; TFabricData *c; if (s->ItemIndex <= MainImageForm->Data3D->FabricList->Count) { if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[i].FIndex = 0; MainImageForm->Data3D->GroupList[i].FFabric = 0; MainImageForm->Data3D->GroupList[i].FRatio.x = 100; MainImageForm->Data3D->GroupList[i].FRatio.y = 100; MainImageForm->Data3D->GroupList[i].FOverlay = 0.8; MainImageForm->Data3D->GroupList[i].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData*)MainImageForm->Data3D->FabricList->Items [s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[i].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[i].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[i].FMean = c->Mean; if (cbSize->ItemIndex != 0) { MainImageForm->Data3D->GroupList[i].FRatio.x = 100; MainImageForm->Data3D->GroupList[i].FRatio.y = 100; } else { MainImageForm->Data3D->GroupList[i].FRatio.x = eRatioXTie->IntValue; MainImageForm->Data3D->GroupList[i].FRatio.y = eRatioYTie->IntValue; MainImageForm->Data3D->GroupList[i].FOverlay = eSmRatioTie->IntValue / 100.0; } } } } } else { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[s->Tag].FIndex = 0; MainImageForm->Data3D->GroupList[s->Tag].FFabric = 0; MainImageForm->Data3D->GroupList[s->Tag].FRatio.x = 100; MainImageForm->Data3D->GroupList[s->Tag].FRatio.y = 100; MainImageForm->Data3D->GroupList[s->Tag].FOverlay = 0.8; MainImageForm->Data3D->GroupList[s->Tag].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData*)MainImageForm->Data3D->FabricList->Items [s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[s->Tag].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[s->Tag].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[s->Tag].FMean = c->Mean; if (cbSize->ItemIndex != 0) { MainImageForm->Data3D->GroupList[s->Tag].FRatio.x = 100; MainImageForm->Data3D->GroupList[s->Tag].FRatio.y = 100; } else { if (s->Tag == 0) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX1->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY1->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio1->IntValue / 100.0; } else if (s->Tag == 1) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX2->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY2->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio2->IntValue / 100.0; } else if (s->Tag == 2) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX3->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY3->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio3->IntValue / 100.0; } else if (s->Tag == 3) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX4->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY4->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio4->IntValue / 100.0; } else if (s->Tag == 4) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX5->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY5->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio5->IntValue / 100.0; } else if (s->Tag == 5) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX6->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY6->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio6->IntValue / 100.0; } else if (s->Tag == 6) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX7->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY7->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio7->IntValue / 100.0; } else if (s->Tag == 7) { MainImageForm->Data3D->GroupList[s->Tag] .FRatio.x = eRatioX8->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FRatio.y = eRatioY8->IntValue; MainImageForm->Data3D->GroupList[s->Tag] .FOverlay = eSmRatio8->IntValue / 100.0; } } } } } else { MessageDlg(IDS_MESSAGE_FINDFABRIC, mtConfirmation, TMsgDlgButtons() << mbOK, 0); // if (s == cbFabric1 || s == cbFabric2 || s == cbFabric3 || s == cbFabric4) { s->ItemIndex = 0; // } } MainImageForm->Modify = true; END_LOG; } // --------------------------------------------------------------------------- // Private Method // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ViewTag(void) { BEGIN_LOG("Fabric3D_F"); TFileInfor *fi = NULL; int i; TPException ec = EC_NONE; TTexVersion ver; TListItem *pItem = 0; // String fn; String wfn; Graphics::TBitmap *icon = NULL; HANDLE hFile = INVALID_HANDLE_VALUE; DWORD size; FILETIME fTime, fLocTime; SYSTEMTIME SysTime; HDC hDC = NULL; BITMAPHANDLE bh; TGraphicFileFormat gff; int count = FileList->Count; if ((fi = new TFileInfor) == NULL) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); goto fail; } if ((fi->Bitmap = new Graphics::TBitmap) == NULL) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); goto fail; } if ((icon = new Graphics::TBitmap) == NULL) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); goto fail; } icon->PixelFormat = pf24bit; icon->Width = 16; icon->Height = 16; #ifdef TRIAL // icon->Handle = (HBITMAP)LoadImage(HInstance,"icontex",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(0, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"icontfc",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(1, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconknt",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(4, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconwav",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(3, icon); STagList->Add(icon, NULL); #endif // icon->Handle = (HBITMAP)LoadImage(HInstance,"icontex",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(0, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"icontfc",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(1, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconbmp",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(5, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconpct",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(6, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconpcx",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(7, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconpng",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(8, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconpsd",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(9, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconras",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(10, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"icontga",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(11, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"icontif",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(12, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"icondxf",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(13, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconjpg",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(24, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconknt",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(4, icon); STagList->Add(icon, NULL); // icon->Handle = (HBITMAP)LoadImage(HInstance,"iconwav",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); IconImageList->GetBitmap(3, icon); STagList->Add(icon, NULL); memset(&bh, 0, sizeof(BITMAPHANDLE)); for (i = 0; i < count; i++) { String *wTemp = (String*)FileList->Items[i]; wfn = *wTemp; String wPath = FullPathName(DirListBox->SelectedPathName, wfn); gff = FindExtension(ExtractFileExt(wPath)); #ifdef TRIAL if (FilterComboBox->ItemIndex >= 0 && FilterComboBox->ItemIndex < 4) // *.ttex, *.ttfc, *.tknt, *.twea { if ((hFile = CreateFile(wPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto next; if (LoadFromTexpiaTag(hFile, fi, gff, &ver, true) != EC_NONE) goto next; } else if (FilterComboBox->ItemIndex == 0 + 4 || FilterComboBox->ItemIndex == 1 + 4 || FilterComboBox->ItemIndex == 12 + 4 || FilterComboBox->ItemIndex == 13 + 4) // *.tex, *.tfc, *.knt, *.wea { if ((hFile = CreateFile(wPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto next; if (LoadFromTexpiaTag(hFile, fi, gff, &ver) != EC_NONE) goto next; } #else if (FilterComboBox->ItemIndex == 0 || FilterComboBox->ItemIndex == 1 || FilterComboBox->ItemIndex == 12 || FilterComboBox->ItemIndex == 13) { // *.tex, *.tfc, *.knt, *.wea if ((hFile = CreateFile(wPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto next; if (LoadFromTexpiaTag(hFile, fi, gff, &ver) != EC_NONE) goto next; } #endif /* else if(FilterComboBox->ItemIndex == 11 || FilterComboBox->ItemIndex == 12) //by bomchun È®ÀåÀÚ Ãß°¡ { if ((hFile = CreateFile(FileName.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); goto fail; } if ((ec = LoadFromTexpiaFile(hFile, pPalette, tpfh, pBitmap, false))!= EC_NONE) goto fail; } */ else { // if (L_LoadBitmap(fn.c_str(), &bh, sizeof(BITMAPHANDLE), 0, ORDER_BGR, &LoadFileOption, NULL)Bitmap->Width = 80; fi->Bitmap->Height = 100; if ((hDC = L_CreateLeadDC(&bh)) == NULL) goto next; SetStretchBltMode(fi->Bitmap->Canvas->Handle, COLORONCOLOR); StretchBlt(fi->Bitmap->Canvas->Handle, 0, 0, 80, 100, hDC, 0, 0, bh.Width, bh.Height, SRCCOPY); L_DeleteLeadDC(hDC); hDC = NULL; L_FreeBitmap(&bh); memset(&bh, 0, sizeof(BITMAPHANDLE)); if ((hFile = CreateFile(wPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto next; } LTagList->Add(fi->Bitmap, NULL); // icon->Canvas->CopyRect(Rect(0, 0, 20, 20), fi->Bitmap->Canvas, Rect(0, 0, 80, 100)); // STagList->Add(icon, NULL); pItem = lvView->Items->Add(); pItem->Caption = wfn; // pItem->ImageIndex = i; if (sbLarge->Down == true) { pItem->ImageIndex = i; } else { pItem->ImageIndex = FilterComboBox->ItemIndex; } size = GetFileSize(hFile, NULL); pItem->SubItems->Add(String(size / 1024.0) + "KB"); if (GetFileTime(hFile, NULL, NULL, &fTime)) { FileTimeToLocalFileTime(&fTime, &fLocTime); if (FileTimeToSystemTime(&fLocTime, &SysTime)) { pItem->SubItems->Add (Format("%d-%d-%d %d:%d", OPENARRAY(TVarRec, (SysTime.wYear, SysTime.wMonth, SysTime.wDay, SysTime.wHour, SysTime.wMinute))) ); } } CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; ProgressBar->Position = (100.0 * i) / count; continue; next: Char * temp = (Char*)FileList->Items[i]; FileList->Remove(temp); // (*wTemp); delete temp; count--; i--; if (hFile != INVALID_HANDLE_VALUE) { CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; } if (hDC) { L_DeleteLeadDC(hDC); hDC = NULL; } } delete icon; delete fi; ProgressBar->Position = 0; END_LOG; return; fail: if (hFile != INVALID_HANDLE_VALUE) CloseHandle(hFile); if (hDC) L_DeleteLeadDC(hDC); L_FreeBitmap(&bh); if (fi) { if (icon) delete icon; delete fi; } EXCEPTION_MESSAGE_OK(ec); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::InitData(void) { BEGIN_LOG("Fabric3D_F"); lvView->Items->Clear(); LTagList->Clear(); STagList->Clear(); replaceSW = false; if (!FileList) FileList = new TList; GetFileList(DirListBox->SelectedPathName, FilterComboBox->Mask); END_LOG; } // --------------------------------------------------------------------------- // Public Method // --------------------------------------------------------------------------- bool __fastcall TFabric3DForm::Choice(TPBitmap *AFabric, Byte AMean) { BEGIN_LOG("Fabric3D_F"); int w, bitsize, i; TListItem *pItem; Graphics::TBitmap *Bitmap = NULL; TFabricData *c; BYTE *bTemp; if (sbReplace->Down) { if ((pItem = lvSelect->ItemFocused) == NULL) goto fail; if ((Bitmap = new Graphics::TBitmap) == NULL) goto fail; LTagList->GetBitmap(lvView->Selected->Index, Bitmap); ImageList->Replace(pItem->ImageIndex, Bitmap, NULL); delete Bitmap; Bitmap = NULL; c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[pItem->Index]; doDestroy(c->Fabric)c->Size.x = AFabric->Width; c->Size.y = AFabric->Height; c->Fabric = AFabric; c->Mean = AMean; for (i = 0; i < T3DF_CNT; i++) { if (MainImageForm->Data3D->GroupList[i].FIndex == pItem->Index + 1) { MainImageForm->Data3D->GroupList[i].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[i].FMean = c->Mean; } } } else if (sbAdd->Down) { if (ImageList->Count < 8) { if ((Bitmap = new Graphics::TBitmap) == NULL) goto fail; LTagList->GetBitmap(lvView->Selected->Index, Bitmap); ImageList->Add(Bitmap, NULL); delete Bitmap; Bitmap = NULL; if ((c = new TFabricData) == NULL) goto fail; c->Size.x = AFabric->Width; c->Size.y = AFabric->Height; c->Fabric = AFabric; c->Mean = AMean; MainImageForm->Data3D->FabricList->Add(c); pItem = lvSelect->Items->Add(); pItem->ImageIndex = pItem->Index; // ¿À¸§Â÷¼ø Á¤·ÄµÇµµ·Ï ¼öÁ¤ - by monkman (2010.03.22) lvSelect->CustomSort(NULL, pItem->Index); /* // show_fabric()¿¡¼­ ÇØÁÜ... if (0 == pItem->Index) pItem->Caption = "A"; else if (1 == pItem->Index) pItem->Caption = "B"; else if (2 == pItem->Index) pItem->Caption = "C"; else if (3 == pItem->Index) pItem->Caption = "D"; else if (4 == pItem->Index) pItem->Caption = "E"; else if (5 == pItem->Index) pItem->Caption = "F"; else if (6 == pItem->Index) pItem->Caption = "G"; else if (7 == pItem->Index) pItem->Caption = "H"; */ sbReplace->Enabled = true; sbDelete->Enabled = true; } else { sbReplace->Down = true; sbAdd->Enabled = false; goto fail; } } END_LOG; return true; fail: if (Bitmap) delete Bitmap; END_LOG; return false; } // --------------------------------------------------------------------------- bool __fastcall TFabric3DForm::OneColorChoice (TPBitmap *AFabric, Byte AMean, RGBQUAD rgb) { BEGIN_LOG("Fabric3D_F"); int w, bitsize, i; TListItem *pItem; Graphics::TBitmap *Bitmap = NULL; TFabricData *c; BYTE *bTemp; if (sbReplace->Down) { if ((pItem = lvSelect->ItemFocused) == NULL) goto fail; if ((Bitmap = new Graphics::TBitmap) == NULL) goto fail; Bitmap->PixelFormat = pf24bit; Bitmap->Width = 80; Bitmap->Height = 100; // LTagList->GetBitmap(lvView->Selected->Index, Bitmap); // --- // OneColorPattern->StartScanLine(); for (int i = 0; i < Bitmap->Height; i++) { bTemp = (Byte*)Bitmap->ScanLine[i]; for (int k = 0; k < (Bitmap->Width * 3); k += 3) { *(bTemp + k) = rgb.rgbBlue; *(bTemp + k + 1) = rgb.rgbGreen; *(bTemp + k + 2) = rgb.rgbRed; } // Bitmap->PutScanLine(i); } // Bitmap->StopScanLine(); // --- ImageList->Replace(pItem->ImageIndex, Bitmap, NULL); delete Bitmap; Bitmap = NULL; c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[pItem->Index]; doDestroy(c->Fabric)c->Size.x = AFabric->Width; c->Size.y = AFabric->Height; c->Fabric = AFabric; c->Mean = AMean; for (i = 0; i < T3DF_CNT; i++) { if (MainImageForm->Data3D->GroupList[i].FIndex == pItem->Index + 1) { MainImageForm->Data3D->GroupList[i].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[i].FMean = c->Mean; } } } else if (sbAdd->Down) { if (ImageList->Count < 8) { if ((Bitmap = new Graphics::TBitmap) == NULL) goto fail; Bitmap->PixelFormat = pf24bit; Bitmap->Width = 80; Bitmap->Height = 100; // LTagList->GetBitmap(lvView->Selected->Index, Bitmap); // --- for (int i = 0; i < Bitmap->Height; i++) { bTemp = (Byte*)Bitmap->ScanLine[i]; for (int k = 0; k < (Bitmap->Width * 3); k += 3) { *(bTemp + k) = (Byte)rgb.rgbBlue; *(bTemp + k + 1) = (Byte)rgb.rgbGreen; *(bTemp + k + 2) = (Byte)rgb.rgbRed; } Canvas->Draw(0, 0, Bitmap); } // --- // ----- /* LTagList->Add(Bitmap,NULL); delete Bitmap; Bitmap = NULL; LTagList->GetBitmap(lvView->Items->Count, Bitmap); */ // ----- ImageList->Add(Bitmap, NULL); delete Bitmap; Bitmap = NULL; if ((c = new TFabricData) == NULL) goto fail; c->Size.x = AFabric->Width; c->Size.y = AFabric->Height; c->Fabric = AFabric; c->Mean = AMean; MainImageForm->Data3D->FabricList->Add(c); pItem = lvSelect->Items->Add(); pItem->ImageIndex = pItem->Index; // ¿À¸§Â÷¼ø Á¤·ÄµÇµµ·Ï ¼öÁ¤ - by monkman (2010.03.22) lvSelect->CustomSort(NULL, pItem->Index); lvSelect->Repaint(); /* // show_fabric()¿¡¼­ ÇØÁÜ... if (0 == pItem->Index) pItem->Caption = "A"; else if (1 == pItem->Index) pItem->Caption = "B"; else if (2 == pItem->Index) pItem->Caption = "C"; else if (3 == pItem->Index) pItem->Caption = "D"; else if (4 == pItem->Index) pItem->Caption = "E"; else if (5 == pItem->Index) pItem->Caption = "F"; else if (6 == pItem->Index) pItem->Caption = "G"; else if (7 == pItem->Index) pItem->Caption = "H"; */ sbReplace->Enabled = true; sbDelete->Enabled = true; } else { sbReplace->Down = true; sbAdd->Enabled = false; goto fail; } } END_LOG; return true; fail: if (Bitmap) delete Bitmap; END_LOG; return false; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::SetGroup() { BEGIN_LOG("Fabric3D_F"); TData3D *dp = MainImageForm->Data3D; lbGroup1->Caption = IDS_GROUP1; eSmRatio1->Value = dp->GroupList[0].FOverlay * 100; eRatioY1->Value = dp->GroupList[0].FRatio.y; eRatioX1->Value = dp->GroupList[0].FRatio.x; cbFabric1->ItemIndex = dp->GroupList[0].FIndex; lbGroup2->Caption = IDS_GROUP2; eSmRatio2->Value = dp->GroupList[1].FOverlay * 100; eRatioY2->Value = dp->GroupList[1].FRatio.y; eRatioX2->Value = dp->GroupList[1].FRatio.x; cbFabric2->ItemIndex = dp->GroupList[1].FIndex; lbGroup3->Caption = IDS_GROUP3; eSmRatio3->Value = dp->GroupList[2].FOverlay * 100; eRatioY3->Value = dp->GroupList[2].FRatio.y; eRatioX3->Value = dp->GroupList[2].FRatio.x; cbFabric3->ItemIndex = dp->GroupList[2].FIndex; lbGroup4->Caption = IDS_GROUP4; eSmRatio4->Value = dp->GroupList[3].FOverlay * 100; eRatioY4->Value = dp->GroupList[3].FRatio.y; eRatioX4->Value = dp->GroupList[3].FRatio.x; cbFabric4->ItemIndex = dp->GroupList[3].FIndex; lbGroup5->Caption = IDS_GROUP5; eSmRatio5->Value = dp->GroupList[4].FOverlay * 100; eRatioY5->Value = dp->GroupList[4].FRatio.y; eRatioX5->Value = dp->GroupList[4].FRatio.x; cbFabric5->ItemIndex = dp->GroupList[4].FIndex; lbGroup6->Caption = IDS_GROUP6; eSmRatio6->Value = dp->GroupList[5].FOverlay * 100; eRatioY6->Value = dp->GroupList[5].FRatio.y; eRatioX6->Value = dp->GroupList[5].FRatio.x; cbFabric6->ItemIndex = dp->GroupList[5].FIndex; lbGroup7->Caption = IDS_GROUP7; eSmRatio7->Value = dp->GroupList[6].FOverlay * 100; eRatioY7->Value = dp->GroupList[6].FRatio.y; eRatioX7->Value = dp->GroupList[6].FRatio.x; cbFabric7->ItemIndex = dp->GroupList[6].FIndex; lbGroup8->Caption = IDS_GROUP8; eSmRatio8->Value = dp->GroupList[7].FOverlay * 100; eRatioY8->Value = dp->GroupList[7].FRatio.y; eRatioX8->Value = dp->GroupList[7].FRatio.x; cbFabric8->ItemIndex = dp->GroupList[7].FIndex; /* if (n&1) { lbGroup1->Caption = IDS_GROUP1; lbGroup1->Tag = 1; eSmRatio1->Value = dp->GroupList[lbGroup1->Tag - 1].FOverlay * 100; eRatioY1->Value = dp->GroupList[lbGroup1->Tag - 1].FRatio.y; eRatioX1->Value = dp->GroupList[lbGroup1->Tag - 1].FRatio.x; cbFabric1->ItemIndex = dp->GroupList[lbGroup1->Tag - 1].FIndex; } if (n&2) { lbGroup2->Caption = IDS_GROUP2; lbGroup2->Tag = 2; eSmRatio2->Value = dp->GroupList[lbGroup2->Tag - 1].FOverlay * 100; eRatioY2->Value = dp->GroupList[lbGroup2->Tag - 1].FRatio.y; eRatioX2->Value = dp->GroupList[lbGroup2->Tag - 1].FRatio.x; cbFabric2->ItemIndex = dp->GroupList[lbGroup2->Tag - 1].FIndex; } if (n&4) { lbGroup3->Caption = IDS_GROUP3; lbGroup3->Tag = 3; eSmRatio3->Value = dp->GroupList[lbGroup3->Tag - 1].FOverlay * 100; eRatioY3->Value = dp->GroupList[lbGroup3->Tag - 1].FRatio.y; eRatioX3->Value = dp->GroupList[lbGroup3->Tag - 1].FRatio.x; cbFabric3->ItemIndex = dp->GroupList[lbGroup3->Tag - 1].FIndex; } if (n&8) { lbGroup4->Caption = IDS_GROUP4; lbGroup4->Tag = 4; eSmRatio4->Value = dp->GroupList[lbGroup4->Tag - 1].FOverlay * 100; eRatioY4->Value = dp->GroupList[lbGroup4->Tag - 1].FRatio.y; eRatioX4->Value = dp->GroupList[lbGroup4->Tag - 1].FRatio.x; cbFabric4->ItemIndex = dp->GroupList[lbGroup4->Tag - 1].FIndex; } */ END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormResize(TObject *Sender) { lvView->Repaint(); /* int gab; if (Width < 507) { // Original Width of Form gab = abs(bfWidth - Width); if (Width < bfWidth) { if (DirListBox->Width > gab) DirListBox->Width -= gab; else DirListBox->Width = 0; } else { if ((DirListBox->Width + gab) < 137) DirListBox->Width += gab; else DirListBox->Width = 137; //Original Width of DirListBox } } bfWidth = Width; */ } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::cbEffectClick(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); int i; if (seAve1->Enabled) seAve1->Enabled = false; else seAve1->Enabled = true; if (seAve2->Enabled) seAve2->Enabled = false; else seAve2->Enabled = true; if (seAve3->Enabled) seAve3->Enabled = false; else seAve3->Enabled = true; if (seAve4->Enabled) seAve4->Enabled = false; else seAve4->Enabled = true; if (seAve5->Enabled) seAve5->Enabled = false; else seAve5->Enabled = true; if (seAve6->Enabled) seAve6->Enabled = false; else seAve6->Enabled = true; if (seAve7->Enabled) seAve7->Enabled = false; else seAve7->Enabled = true; if (seAve8->Enabled) seAve8->Enabled = false; else seAve8->Enabled = true; if (seAveTie->Enabled) seAveTie->Enabled = false; else seAveTie->Enabled = true; if (cbEffect->Checked) { if (!(MainImageForm->Data3D->GroupList[0].Filter & 0x80)) { seAve1->Value = MainImageForm->Data3D->GroupList[0].Filter; seAve2->Value = MainImageForm->Data3D->GroupList[1].Filter; seAve3->Value = MainImageForm->Data3D->GroupList[2].Filter; seAve4->Value = MainImageForm->Data3D->GroupList[3].Filter; seAve5->Value = MainImageForm->Data3D->GroupList[4].Filter; seAve6->Value = MainImageForm->Data3D->GroupList[5].Filter; seAve7->Value = MainImageForm->Data3D->GroupList[6].Filter; seAve8->Value = MainImageForm->Data3D->GroupList[7].Filter; } else { MainImageForm->Data3D->GroupList[0].Filter = seAve1->Value; MainImageForm->Data3D->GroupList[1].Filter = seAve2->Value; MainImageForm->Data3D->GroupList[2].Filter = seAve3->Value; MainImageForm->Data3D->GroupList[3].Filter = seAve4->Value; MainImageForm->Data3D->GroupList[4].Filter = seAve5->Value; MainImageForm->Data3D->GroupList[5].Filter = seAve6->Value; MainImageForm->Data3D->GroupList[6].Filter = seAve7->Value; MainImageForm->Data3D->GroupList[7].Filter = seAve8->Value; } MainImageForm->Data3D->GroupList[0].Filter = seAve1->Value; } else { MainImageForm->Data3D->GroupList[0].Filter = 0x83; } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::AveKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { TRzSpinEdit *s = (TRzSpinEdit*)Sender; if (Key == VK_RETURN) { if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { MainImageForm->Data3D->GroupList[i].Filter = s->Value; } } } else { MainImageForm->Data3D->GroupList[s->Tag].Filter = s->Value; } } } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::SeditorChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TRzSpinEdit *s = (TRzSpinEdit*)Sender; if (!(MainImageForm->Data3D->GroupList[0].Filter & 0x80)) { if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { MainImageForm->Data3D->GroupList[i].Filter = s->Value; } } } else { MainImageForm->Data3D->GroupList[s->Tag].Filter = s->Value; } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvSelectClick(TObject *Sender) { if (sbReplace->Down) replaceSW = true; else replaceSW = false; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormCloseQuery(TObject *Sender, bool &CanClose) { BEGIN_LOG("Fabric3D_F"); HidePatternForm(); MainImageForm->ResetDraw(); // lhskys Á÷¼± ÀÜ»ó Á¦°Å¸¦ À§Çؼ­ MainImageForm->iMainImage->Repaint(); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::HidePatternForm() { BEGIN_LOG("Fabric3D_F"); if (PatternForm) PatternForm->Hide(); if (MainImageForm->iMainImage->OnPaintZoom) { MainImageForm->iMainImage->OnPaintZoom = NULL; MainImageForm->iMainImage->Invalidate(); } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ShowIndex() { PatternForm->stGroupIndex->Caption = IntToStr(GroupIndex + 1); PatternForm->stGridIndex->Caption = IntToStr(GridIndex + 1); } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ShowFabric(TPBitmap *pattern) { BEGIN_LOG("Fabric3D_F"); PatternForm->ShowFabric(pattern); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ResetGridArray_Group() { BEGIN_LOG("Fabric3D_F"); int i, k, m, cd, pd; TData3D *tp, *dp = MainImageForm->Data3D; String str; for (i = 0; i < T3DF_CNT; i++) { review: if (dp->fn[i].cnt > 1) { pd = dp->fn[i].sn[0]; for (k = 1; k < dp->fn[i].cnt; k++) { cd = dp->fn[i].sn[k]; if (pd == cd) { for (m = 0; m < dp->fn[i].cnt; m++) { dp->fn[i].sn[m] = dp->fn[i].sn[m + 1]; } dp->fn[i].sn[dp->fn[i].cnt - 1] = 0; // -1; dp->fn[i].cnt--; goto review; } } } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::cbSizeChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); double len, slen; if (cbSize->ItemIndex == 0) { // lbRatio->Caption = IDS_RATIO; pnRatio->BringToFront(); Menu3DForm->ResetStep(); } else if (cbSize->ItemIndex == 1) { pnSize->BringToFront(); PatternEdit->Visible = true; PatternEdit2->Visible = true; PatternEdit3->Visible = true; PatternEdit4->Visible = true; PatternEdit5->Visible = true; PatternEdit6->Visible = true; PatternEdit7->Visible = true; PatternEdit8->Visible = true; lbFabric->Visible = true; ImageEdit->Left = 6; lbModelSize->Left = 6; if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; len = MainImageForm->Data3D->F_Length[0] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; len = MainImageForm->Data3D->F_Length[1] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit2->Value = len; len = MainImageForm->Data3D->F_Length[2] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit3->Value = len; len = MainImageForm->Data3D->F_Length[3] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit4->Value = len; len = MainImageForm->Data3D->F_Length[4] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit5->Value = len; len = MainImageForm->Data3D->F_Length[5] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit6->Value = len; len = MainImageForm->Data3D->F_Length[6] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit7->Value = len; len = MainImageForm->Data3D->F_Length[7] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit8->Value = len; } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; len = MainImageForm->Data3D->F_Length[0] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; len = MainImageForm->Data3D->F_Length[1] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit2->Value = len; len = MainImageForm->Data3D->F_Length[2] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit3->Value = len; len = MainImageForm->Data3D->F_Length[3] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit4->Value = len; len = MainImageForm->Data3D->F_Length[4] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit5->Value = len; len = MainImageForm->Data3D->F_Length[5] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit6->Value = len; len = MainImageForm->Data3D->F_Length[6] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit7->Value = len; len = MainImageForm->Data3D->F_Length[7] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit8->Value = len; } else { ImageEdit->Value = MainImageForm->Data3D->M_Length; PatternEdit->Value = MainImageForm->Data3D->F_Length[0]; PatternEdit2->Value = MainImageForm->Data3D->F_Length[1]; PatternEdit3->Value = MainImageForm->Data3D->F_Length[2]; PatternEdit4->Value = MainImageForm->Data3D->F_Length[3]; PatternEdit5->Value = MainImageForm->Data3D->F_Length[4]; PatternEdit6->Value = MainImageForm->Data3D->F_Length[5]; PatternEdit7->Value = MainImageForm->Data3D->F_Length[6]; PatternEdit8->Value = MainImageForm->Data3D->F_Length[7]; } Menu3DForm->ResetStep(); } else { pnSize->BringToFront(); PatternEdit->Visible = false; PatternEdit2->Visible = false; PatternEdit3->Visible = false; PatternEdit4->Visible = false; PatternEdit5->Visible = false; PatternEdit6->Visible = false; PatternEdit7->Visible = false; PatternEdit8->Visible = false; ImageEdit->Left = 30; lbModelSize->Left = 30; lbFabric->Visible = false; if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; } else { ImageEdit->Value = MainImageForm->Data3D->M_Length; } Menu3DForm->ResetStep(); } TieVisibleChange(); MainImageForm->Data3D->SizeItem = cbSize->ItemIndex; END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::SizeEditClick(TObject *Sender) { TNumEdit *Edit = (TNumEdit*)Sender; Edit->SetFocus(); Edit->SelectAll(); } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::rxGroupChange(TObject *Sender) { /* BEGIN_LOG("Fabric3D_F"); int index = rxGroup->Value; double len; TData3D *dp = MainImageForm->Data3D; // Áß°£¿¡ ºñ¾îÀÖ´Â ±×·ìÀÌ ¾øµµ·Ï À妽º¿Í °¹¼ö¸¦ üũÇϳª // µðÀÚÀ̳ʵéÀÌ ºÒÆíÇÏ´Ù°íÇÏ¿© ¾Æ·¡¿Í °°ÀÌ ±×·ìÀÇ ¹üÀ§¸¦ Á÷Á¢ ÄÄÆ÷³ÍÆ®¿¡ ÀÔ·ÂÇϰí ÁÖ¼®Ã³¸®ÇÏ¿´´Ù - by monkman (2008.08.04) //if ((dp->GroupList[index-1].FIndex <= 0) || (dp->fn[index-1].cnt <= 0)) { // rxGroup->Value = index-1; //} index = rxGroup->Value; if (MainImageForm->CurrentUnit == uCm) { len = MainImageForm->Data3D->F_Length[index-1]*2.54/MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; //Format("%.2f",OPENARRAY(TVarRec,(len))); } else if (MainImageForm->CurrentUnit == uInch) { len = MainImageForm->Data3D->F_Length[index-1]/MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; //Format("%.2f",OPENARRAY(TVarRec,(len))); } else { PatternEdit->Value = MainImageForm->Data3D->F_Length[index-1]; } END_LOG; */ } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::Show_FabricSize() { BEGIN_LOG("Fabric3D_F"); int iw, ih, fcnt, i, DPI; double dw, dh; Char *abc[8] = { L"A", L"B", L"C", L"D", L"E", L"F", L"G", L"H" }; String str; TFabricData *c; TListItem *pItem; DPI = MainImageForm->CanvasInfor.DotsPerInch; fcnt = MainImageForm->Data3D->FabricList->Count; for (i = 0; i < fcnt; i++) { c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[i]; iw = c->Fabric->Width; ih = c->Fabric->Height; pItem = lvSelect->Items->Item[i]; if (MainImageForm->CurrentUnit == uCm) { dw = (double)iw * 2.54 / DPI; dh = (double)ih * 2.54 / DPI; str = Format("%s : %.2f x %.2f", OPENARRAY(TVarRec, (abc[i], dw, dh))); } else if (MainImageForm->CurrentUnit == uInch) { dw = (double)iw / DPI; dh = (double)ih / DPI; str = Format("%s : %.2f x %.2f", OPENARRAY(TVarRec, (abc[i], dw, dh))); } else { str = Format("%s : %d x %d", OPENARRAY(TVarRec, (abc[i], iw, ih))); } pItem->Caption = str; } double len, slen; if (cbSize->ItemIndex == 1) { if (MainImageForm->CurrentUnit == uCm) { len = MainImageForm->Data3D->F_Length[0] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; slen = MainImageForm->Data3D->M_Length * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; // Format("%.2f",OPENARRAY(TVarRec,(len))); ImageEdit->Value = slen; // Format("%.2f",OPENARRAY(TVarRec,(slen))); } else if (MainImageForm->CurrentUnit == uInch) { len = MainImageForm->Data3D->F_Length[0] / MainImageForm->CanvasInfor.DotsPerInch; slen = MainImageForm->Data3D->M_Length / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; // Format("%.2f",OPENARRAY(TVarRec,(len))); ImageEdit->Value = slen; // Format("%.2f",OPENARRAY(TVarRec,(slen))); } else { PatternEdit->Value = MainImageForm->Data3D->F_Length[0]; ImageEdit->Value = MainImageForm->Data3D->M_Length; } } else if (cbSize->ItemIndex == 2) { if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; // Format("%.2f",OPENARRAY(TVarRec,(slen))); } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; // Format("%.2f",OPENARRAY(TVarRec,(slen))); } else { ImageEdit->Value = MainImageForm->Data3D->M_Length; } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::PatternEditKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("Fabric3D_F"); int DPI, index; TNumEdit *pe = (TNumEdit*)Sender; index = pe->Tag; DPI = MainImageForm->CanvasInfor.DotsPerInch; if (Key == VK_RETURN) { int len = 0; if (MainImageForm->CurrentUnit == uCm) { len = pe->Value * DPI / 2.54; } else if (MainImageForm->CurrentUnit == uInch) { len = pe->Value * DPI; } else { len = pe->IntValue; } if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { MainImageForm->Data3D->F_Length[i] = len; index = i; } } } else { MainImageForm->Data3D->F_Length[index] = len; } for (int i = 0; i < 8; i++) { ////////////k3dogs 20010207 if ((i != index - 1) && (MainImageForm->Data3D->F_Length[i] == 0)) { // MainImageForm->Data3D->F_Length[i] = MainImageForm->Data3D->F_Length [index]; // } // } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ImageEditKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("Fabric3D_F"); if (Key == VK_RETURN) { TNumEdit *imgEdit = (TNumEdit*)Sender; int DPI = MainImageForm->CanvasInfor.DotsPerInch; if (MainImageForm->CurrentUnit == uCm) { MainImageForm->Data3D->M_Length = imgEdit->Value * DPI / 2.54; } else if (MainImageForm->CurrentUnit == uInch) { MainImageForm->Data3D->M_Length = imgEdit->Value * DPI; } else { MainImageForm->Data3D->M_Length = imgEdit->IntValue; } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::cbPointClick(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); MainImageForm->Data3D->FitPoint = cbPoint->Checked; if (cbPoint->Checked) { // spPoint->Enabled = true; SetFittingPoint(); } else { // spPoint->Enabled = false; HidePatternForm(); } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::SetFittingPoint() { BEGIN_LOG("Fabric3D_F"); int j, k; TPException ec = EC_NONE; TData3D *dp = MainImageForm->Data3D; GroupIndex = 0; if ((dp->GridCount > 0) && (MainImageForm->Data3D->CopyCount == 0)) { if (PatternForm == NULL) { if ((PatternForm = new TPatternForm(NULL)) == NULL) { ec = EC_FORM_NOT_CREATE; SAVE_EXCEPTION(ec); goto fail; } PatternForm->Parent = MainForm; // MainForm; } // ====================================// ½ÇÁ¦ °¹¼öº¸´Ù ¸¹Àº °æ¿ì°¡ ÀÖ¾î ResetGridArray_Group(); // grid index¸¦ ãÁö ¸øÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.. // ====================================// ÀÌÀü ¹öÁ¯ÀÇ ErrorÀÎÁö ¾Æ´ÑÁö ¸ð¸£°ÚÀ½... if ((dp->GroupList[GroupIndex].FIndex > 0) && (dp->fn[GroupIndex].cnt > 1)) { PatternForm->sbGridNext->Enabled = true; PatternForm->sbGridPre->Enabled = true; } else { PatternForm->sbGridNext->Enabled = false; PatternForm->sbGridPre->Enabled = false; } if (dp->GroupList[GroupIndex].FIndex > 0) PatternForm->ShowFabric(dp->GroupList[GroupIndex].FFabric); else PatternForm->ShowFabric(); PatternForm->Show(); if (MainImageForm->iMainImage->OnPaintZoom == NULL) { Menu3DForm->CreateGridPen(); MainImageForm->iMainImage->OnPaintZoom = Menu3DForm->PaintGrid; GridIndex = dp->fn[GroupIndex].sn[0]; Menu3DForm->ViewGrid(GridIndex); } PatternForm->StatusBar1->Panels->Items[0]->Text = "Select Point : "; } else { ShowMessage("Grid doesn't exist"); HidePatternForm(); cbPoint->Checked = false; // spPoint->Enabled = false; MainImageForm->Data3D->FitPoint = false; // sep->Down = false; } END_LOG; return; fail: EXCEPTION_MESSAGE_OK(ec); END_LOG; } // --------------------------------------------------------------------------- bool __fastcall TFabric3DForm::DoSetPoint() { if (PatternForm) return PatternForm->Visible; else return false; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::shadowChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TNumEdit *eSmRatio = dynamic_cast(Sender); int index = eSmRatio->Tag; if (eSmRatio->IntValue >= 1 && eSmRatio->IntValue <= 160) { MainImageForm->Data3D->GroupList[index].FOverlay = eSmRatio->IntValue / 100.0; } else { eSmRatio->Value = 80; } MainImageForm->Modify = true; END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ImageEditChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TNumEdit *imgEdit = (TNumEdit*)Sender; int DPI = MainImageForm->CanvasInfor.DotsPerInch; if (MainImageForm->CurrentUnit == uCm) { MainImageForm->Data3D->M_Length = imgEdit->Value * DPI / 2.54; } else if (MainImageForm->CurrentUnit == uInch) { MainImageForm->Data3D->M_Length = imgEdit->Value * DPI; } else { MainImageForm->Data3D->M_Length = imgEdit->IntValue; } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::PatternEditChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); int DPI, index; TNumEdit *pe = (TNumEdit*)Sender; index = pe->Tag; DPI = MainImageForm->CanvasInfor.DotsPerInch; int len = 0; if (MainImageForm->CurrentUnit == uCm) { len = pe->Value * DPI / 2.54; } else if (MainImageForm->CurrentUnit == uInch) { len = pe->Value * DPI; } else { len = pe->IntValue; } if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { MainImageForm->Data3D->F_Length[i] = len; index = i; } } } else { MainImageForm->Data3D->F_Length[index] = len; } for (int i = 0; i < 8; i++) { ////////////k3dogs 20010207 if ((i != index) && (MainImageForm->Data3D->F_Length[i] == 0)) { // MainImageForm->Data3D->F_Length[i] = MainImageForm->Data3D->F_Length [index]; // } // } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::eRatioXChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TNumEdit *eRatio = (TNumEdit*)Sender; if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[i].FRatio.x = eRatio->IntValue; } else { eRatio->Value = 100; } } } } else { int index = eRatio->Tag; if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[index].FRatio.x = eRatio->IntValue; } else { eRatio->Value = 100; } } MainImageForm->Modify = true; END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::MakeOneColorPattern(RGBQUAD rgb) { BEGIN_LOG("Fabric3D_F"); HANDLE hFile = INVALID_HANDLE_VALUE; int x, y, w, bitsize, i, j, k; int m; TEXPIAFILEHEADER tpfh; // RGBQUAD rgb[256]; BITMAPHANDLE fh; Byte mean; TPException ec = EC_NONE; // TTexpiaBitmap *pBitmap = NULL; TUnionBitmap *pBitmap = NULL; TPBitmap *pFabric = NULL; TCursor OldCursor; String temp; TUnionBitmap *OneColorPattern; RGBQUAD rRgbQuad[256]; // HANDLE hFile = INVALID_HANDLE_VALUE; BYTE *bTemp; // String fn, DirName, FileName; OneColorPattern = new TUnionBitmap(); MainImageForm->Palette->ToRGBQUAD(rRgbQuad, 256); OneColorPattern->Create(1248, 1760, 24); temp = DirListBox->SelectedPathName + "\\test.bmp"; // --------------- OneColorPattern->StartScanLine(); // OneColorPattern-> for (int i = 0; i < OneColorPattern->Height; i++) { bTemp = OneColorPattern->GetScanLine(i); for (int k = 0; k < (OneColorPattern->Width * 3); k += 3) { *(bTemp + k) = rgb.rgbBlue; *(bTemp + k + 1) = rgb.rgbGreen; *(bTemp + k + 2) = rgb.rgbRed; } OneColorPattern->PutScanLine(i); } OneColorPattern->StopScanLine(); // --------------- if (sbAdd->Down || (sbReplace->Down && replaceSW)) { if ((MainImageForm->Data3D->FabricList->Count < 8) || MainImageForm->Data3D->FabricList->Count == 8 && sbReplace->Down && replaceSW) { // if(lvView->Selected == NULL)return; OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; // String fn = lvView->Items->Item[lvView->Selected->Index]->Caption; // if ((pBitmap = new TUnionBitmap)==NULL) goto fail; #ifdef TRIAL if (FilterComboBox->ItemIndex == 0 || FilterComboBox->ItemIndex == 1 || FilterComboBox->ItemIndex == 0 + 4 || FilterComboBox->ItemIndex == 1 + 4) { #else if (FilterComboBox->ItemIndex == 0 || FilterComboBox->ItemIndex == 1) { #endif /* if ((hFile = CreateFile(fn.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { ec = EC_FILE_NOT_OPEN; SAVE_EXCEPTION(ec); goto fail; } if ((ec = LoadFromTexpiaFile(hFile, MainImageForm->Palette, tpfh, pBitmap))!=EC_NONE) goto fail; CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; */ pBitmap = OneColorPattern; ProgressBar->Position = 30; pBitmap->ColorResolution(24, CRF_BYTEORDERBGR, NULL, 0); if ((pFabric = new TPBitmap) == NULL) goto fail; if (!pFabric->Create(pBitmap->Width, pBitmap->Height, 24)) goto fail; if (pFabric->Lock() == NULL) goto fail; pBitmap->ConvertColorSpace(csHLS); pBitmap->SaveToMemory(pFabric->ScanLine(), pFabric->BytesPerLine, Rect (0, 0, pBitmap->Width, pBitmap->Height)); k = 0; m = 0; for (i = 0; i < pBitmap->Height; i++) { for (j = 0; j < pBitmap->Width; j++) { // m += *(pFabric->ScanLine(i)+j*3+1); m += *(pFabric->ScanLine(i) + j * 3); k++; } } mean = (double)m / (double)k; delete pBitmap; pBitmap = NULL; ProgressBar->Position = 60; if (!OneColorChoice(pFabric, mean, rgb)) goto fail; PaletteForm->DIB256Palette->Repaint(); ProgressBar->Position = 100; } else { // if (!pBitmap->LoadFromFile(fn)) { ec = EC_FILE_NOT_READ; SAVE_EXCEPTION(ec); goto fail; } pBitmap = OneColorPattern; ProgressBar->Position = 30; pBitmap->ColorResolution(24, CRF_BYTEORDERBGR, NULL, 0); if ((pFabric = new TPBitmap) == NULL) goto fail; if (!pFabric->Create(pBitmap->Width, pBitmap->Height, 24)) goto fail; if (pFabric->Lock() == NULL) goto fail; pBitmap->ConvertColorSpace(csHLS); pBitmap->SaveToMemory(pFabric->ScanLine(), pFabric->BytesPerLine, Rect (0, 0, pBitmap->Width, pBitmap->Height)); k = 0; m = 0; for (i = 0; i < pBitmap->Height; i++) { for (j = 0; j < pBitmap->Width; j++) { // m += *(pFabric->ScanLine(i)+j*3+1); m += *(pFabric->ScanLine(i) + j * 3); k++; } } mean = (double)m / (double)k; delete pBitmap; pBitmap = NULL; ProgressBar->Position = 60; if (!OneColorChoice(pFabric, mean, rgb)) goto fail; ProgressBar->Position = 100; } if (MainImageForm->Data3D->FabricList->Count >= 8) sbAdd->Enabled = false; sbSimulation->Enabled = true; // Simulation->Enabled = true; MainImageForm->Modify = true; ProgressBar->Position = 0; Screen->Cursor = OldCursor; Show_FabricSize(); } } END_LOG; return; fail: if (pFabric) delete pFabric; if (hFile != INVALID_HANDLE_VALUE) CloseHandle(hFile); if (pBitmap) delete pBitmap; if (ec == EC_NONE) { ec = EC_MEMORY_LACK; SAVE_EXCEPTION(ec); } Screen->Cursor = OldCursor; EXCEPTION_MESSAGE_OK(ec); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvSelectMouseDown (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { BEGIN_LOG("Fabric3D_F"); if (Button == mbRight) { TFabricData *c; BYTE *temp, temp8bit, HLSCon[3]; int n; RGBQUAD rgb; tagRGBQUAD tempRgb; double h, l, s; if (!lvSelect->ItemFocused) { END_LOG; return; } n = lvSelect->Items->IndexOf(lvSelect->ItemFocused); if (n < 0) { END_LOG; return; } // n = lvSelect->Selected->Index; c = (TFabricData*)MainImageForm->Data3D->FabricList->Items[n]; if (c->Fabric->BitsPerPixel == 24) { for (int i = 0; i < c->Fabric->Height; i++) { temp = (Byte*)c->Fabric->ScanLine(i); if (i == 0) { rgb.rgbBlue = *(temp); rgb.rgbGreen = *(temp + 1); rgb.rgbRed = *(temp + 2); } for (int k = 0; k < c->Fabric->Width; k += 3) { if (*(temp + k) != rgb.rgbBlue) { END_LOG; return; } if (*(temp + k + 1) != rgb.rgbGreen) { END_LOG; return; } if (*(temp + k + 2) != rgb.rgbRed) { END_LOG; return; } } } // PaletteForm->DIB256Palette-> for (int j = 2; j <= 255 /* PaletteForm->DIB256Palette->UseColor */ ; j++) { tempRgb = PaletteForm->DIB256Palette->Palette->ColorData[j]->RGB; HLSCon[0] = tempRgb.rgbBlue; HLSCon[1] = tempRgb.rgbGreen; HLSCon[2] = tempRgb.rgbRed; L_ConvertColorSpace(HLSCon, HLSCon, 1, 0, 4); if (rgb.rgbBlue == HLSCon[0] && rgb.rgbGreen == HLSCon[1] && rgb.rgbRed == HLSCon[2]) { PaletteForm->DIB256Palette->ChoiceIndex = j; MainMenuForm->ChoiceColor(j); END_LOG; return; } } } else { for (int i = 0; i < c->Fabric->Height; i++) { temp = (Byte*)c->Fabric->ScanLine(i); if (i == 0) { temp8bit = *temp; } for (int k = 0; k < c->Fabric->Width; k++) { if (*(temp + k) != temp8bit) { END_LOG; return; } } } PaletteForm->DIB256Palette->ChoiceIndex = *temp; MainMenuForm->ChoiceColor(*temp); } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::EditorSelectAll(TObject *Sender) { SetFocusAndSelectAll(Sender); } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::GetFileList(String Path, String Filter) { BEGIN_LOG("Fabric3D_F"); HANDLE hSrch = INVALID_HANDLE_VALUE; WIN32_FIND_DATAW wfd; Char fname[MAX_PATH]; BOOL bResult = TRUE; ClearFileList(); if (Path == NULL || Path == "") { END_LOG; return; } String wPath = String(Path + "\\" + Filter); hSrch = FindFirstFile(wPath.c_str(), &wfd); if (hSrch != INVALID_HANDLE_VALUE) { while (bResult) { if (wfd.dwFileAttributes && !(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(wfd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) && !(wfd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)) { // && !(wfd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY)){ String* filename = new String(wfd.cFileName); FileList->Add(filename); } bResult = FindNextFile(hSrch, &wfd); } } else { wPath = Path + String("\\*.*"); hSrch = FindFirstFile(wPath.c_str(), &wfd); if (hSrch != INVALID_HANDLE_VALUE) { while (bResult) { if ( /* wfd.dwFileAttributes && */ !(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && ! (wfd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) && !(wfd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)) { // !(wfd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY)){ if (SameText(ExtractFileExt(wfd.cFileName), ExtractFileExt (String(Filter)))) { String* filename = new String(wfd.cFileName); FileList->Add(filename); } } bResult = FindNextFile(hSrch, &wfd); } } } FindClose(hSrch); END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::ClearFileList() { BEGIN_LOG("Fabric3D_F"); Char* file = NULL; if (FileList) { while (FileList->Count > 0) { file = (Char*)FileList->Last(); if (file) { FileList->Remove(file); delete file; file = NULL; } } } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::DirListBoxChange (TObject *Sender, TTreeNode *Node) { BEGIN_LOG("Fabric3D_F"); TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; InitData(); if (FileList->Count) ViewTag(); Screen->Cursor = OldCursor; LabelDir->Caption = DirListBox->SelectedPathName; if (!FileList->Count || (MainImageForm->Data3D->FabricList->Count >= 8)) sbAdd->Enabled = false; else sbAdd->Enabled = true; // by bomchun µð·ºÅ丮 ¿Å±æ‹š´Â üũ¸¦ ¾ÈÇØÁ༭ Ãß°¡ÇÔ END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvSelectCompare (TObject *Sender, TListItem *Item1, TListItem *Item2, int Data, int &Compare) { // ¿À¸§Â÷¼ø Á¤·ÄµÇµµ·Ï ¼öÁ¤ - by monkman (2010.03.22) if (Item1 && Item2) { if (Item1->Index < Item2->Index) Compare = -1; else if (Item1->Index > Item2->Index) Compare = 1; } else { Compare = -1; } } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::shadowKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("Fabric3D_F"); TNumEdit *eSmRatio = (TNumEdit*)Sender; if (Key == VK_RETURN) { if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { if (eSmRatio->IntValue >= 1 && eSmRatio->IntValue <= 160) { MainImageForm->Data3D->GroupList[i].FOverlay = eSmRatio->IntValue / 100.0; } else { eSmRatio->Value = 80; } } } } else { int index = eSmRatio->Tag; if (eSmRatio->IntValue >= 1 && eSmRatio->IntValue <= 160) { MainImageForm->Data3D->GroupList[index].FOverlay = eSmRatio->IntValue / 100.0; } else { eSmRatio->Value = 80; } } MainImageForm->Modify = true; g_FocusControl->SetFocus(); } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::eRatioYChange(TObject *Sender) { BEGIN_LOG("Fabric3D_F"); TNumEdit *eRatio = (TNumEdit*)Sender; if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[i].FRatio.y = eRatio->IntValue; } else { eRatio->Value = 100; } } } } else { int index = eRatio->Tag; if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[index].FRatio.y = eRatio->IntValue; } else { eRatio->Value = 100; } } MainImageForm->Modify = true; END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::eRatioYKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("Fabric3D_F"); TNumEdit *eRatio = (TNumEdit*)Sender; if (Key == VK_RETURN) { if (sbTie->Down) { for (int i = 0; i < 8; i++) { if (rzcgTie->Checks[i]->Checked) { if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[i].FRatio.y = eRatio->IntValue; } else { eRatio->Value = 100; } } } } else { int index = eRatio->Tag; if (eRatio->IntValue >= 1 && eRatio->IntValue <= 1000) { MainImageForm->Data3D->GroupList[index].FRatio.y = eRatio->IntValue; } else { eRatio->Value = 100; } } MainImageForm->Modify = true; g_FocusControl->SetFocus(); } END_LOG; } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::sbTieClick(TObject *Sender) { TieVisibleChange(); } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::TieVisibleChange() { if (sbTie->Down) { rzcgTie->Visible = true; pnTie->BringToFront(); pnTie->Visible = true; cbFabricTie->ItemIndex = 0; eRatioXTie->Value = 100; eRatioYTie->Value = 100; eSmRatioTie->Value = 80; seAveTie->Value = 3; PatternEditTie->Value = 0; double slen; if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; ImageEditTie->Value = slen; } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length / MainImageForm->CanvasInfor.DotsPerInch; ImageEditTie->Value = slen; } else { ImageEditTie->Value = MainImageForm->Data3D->M_Length; } if (cbSize->ItemIndex == 0) { pnRatio2->BringToFront(); lbModelSizeTie->Visible = false; } else if (cbSize->ItemIndex == 1) { pnSize2->BringToFront(); ImageEditTie->Left = 6; lbModelSizeTie->Left = 6; lbModelSizeTie->Visible = true; PatternEditTie->Visible = true; } else { pnSize2->BringToFront(); ImageEditTie->Left = 30; lbModelSizeTie->Left = 30; lbModelSizeTie->Visible = true; PatternEditTie->Visible = false; } } else { lbModelSizeTie->Visible = false; for (int i = 0; i < 8; i++) { rzcgTie->Checks[i]->Checked = false; } rzcgTie->Visible = false; pnTie->Visible = false; SetGroup(); double slen, len; if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; len = MainImageForm->Data3D->F_Length[0] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; len = MainImageForm->Data3D->F_Length[1] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit2->Value = len; len = MainImageForm->Data3D->F_Length[2] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit3->Value = len; len = MainImageForm->Data3D->F_Length[3] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit4->Value = len; len = MainImageForm->Data3D->F_Length[4] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit5->Value = len; len = MainImageForm->Data3D->F_Length[5] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit6->Value = len; len = MainImageForm->Data3D->F_Length[6] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit7->Value = len; len = MainImageForm->Data3D->F_Length[7] * 2.54 / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit8->Value = len; } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length / MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Value = slen; len = MainImageForm->Data3D->F_Length[0] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Value = len; len = MainImageForm->Data3D->F_Length[1] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit2->Value = len; len = MainImageForm->Data3D->F_Length[2] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit3->Value = len; len = MainImageForm->Data3D->F_Length[3] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit4->Value = len; len = MainImageForm->Data3D->F_Length[4] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit5->Value = len; len = MainImageForm->Data3D->F_Length[5] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit6->Value = len; len = MainImageForm->Data3D->F_Length[6] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit7->Value = len; len = MainImageForm->Data3D->F_Length[7] / MainImageForm->CanvasInfor.DotsPerInch; PatternEdit8->Value = len; } else { ImageEdit->Value = MainImageForm->Data3D->M_Length; len = MainImageForm->Data3D->F_Length[0]; PatternEdit->Value = len; len = MainImageForm->Data3D->F_Length[1]; PatternEdit2->Value = len; len = MainImageForm->Data3D->F_Length[2]; PatternEdit3->Value = len; len = MainImageForm->Data3D->F_Length[3]; PatternEdit4->Value = len; len = MainImageForm->Data3D->F_Length[4]; PatternEdit5->Value = len; len = MainImageForm->Data3D->F_Length[5]; PatternEdit6->Value = len; len = MainImageForm->Data3D->F_Length[6]; PatternEdit7->Value = len; len = MainImageForm->Data3D->F_Length[7]; PatternEdit8->Value = len; } } } // --------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvViewResize(TObject *Sender) { // ƯÁ¤ °æ¿ì ListView¿¡ mouse on ÇßÀ» ¶§ ListViewResize¸¦ °è¼ÓÇÏ´Â ¹®Á¦¶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÔ static oldWidth = lvView->Width; if(oldWidth == lvView->Width) return; oldWidth = lvView->Width; lvView->Arrange(Comctrls::arDefault); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::sbDeleteClick(TObject *Sender) { // »èÁ¦½Ã ´Ü»ö°ú ÆÐÅÏ µÑ´Ù »èÁ¦ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ´Ü»ö ¹öưÀÌ ´­·ÁÁ®ÀÖÁö ¾Ê°Ô ÇÑ´Ù - by monkman (2011.04.29) sbOneColorPattern->Down = false; } //---------------------------------------------------------------------------