//--------------------------------------------------------------------------- #include #include #pragma hdrstop #include "Fabric3D_F.h" #include "MainImage.h" #include "Menu3D_F.h" #include "Palette.h" #include "ViewPattern_F.h" #include "LeadToolsFileOption.h" //==========================for fit point by kjs #include "Main.h" //============================ //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cspin" #pragma link "TPSpin" #pragma link "RXSpin" #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] //--------------------------------------------------------------------------- __fastcall TFabric3DForm::TFabric3DForm(TComponent* Owner) : TForm(Owner) { Lstore = 0; Sstore = 0; PatternForm = NULL; int i; TIniFile *IniFile = 0; AnsiString IniDirName; TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; //========================================================================= StringTable.Create(DirectoryItem, Language, "Fabric3D"); SetSmallFont(Font); SetSmallFont(stGroup1->Font); SetSmallFont(stGroup2->Font); SetSmallFont(stGroup3->Font); SetSmallFont(stGroup4->Font); GroupBox1->Caption = IDS_SELECTEDFABRIC; Label5->Caption = IDS_GROUP; stGroup1->Caption = IDS_GROUP1; stGroup2->Caption = IDS_GROUP2; stGroup3->Caption = IDS_GROUP3; stGroup4->Caption = IDS_GROUP4; Label6->Caption = IDS_FABRIC; Label7->Caption = IDS_RATIO; Label8->Caption = IDS_OVERLAY; sbAdd->Caption = IDS_ADD; sbReplace->Caption = IDS_REPLACE; sbSimulation->Caption = IDS_SIMULATION; sbStandard->Caption = IDS_STANDARDPATTERN; sbSelect->Caption = IDS_SELECTPATTERN; sbLarge->Hint = IDS_LARGE; sbSmall->Hint = IDS_SMALL; sbReport->Hint = IDS_REPORT; Simulation->Caption = IDS_SIMULATION; CheckBox1->Caption = IDS_EFFECT; sbDelete->Caption = IDS_COMMON_DELETE; //========================================================================= IniFile = new TIniFile(DirectoryItem + "\\Main.ini"); if (IniFile) { IniDirName = IniFile->ReadString("FileManager", "DirectoryName", "C:\\"); if (SetCurrentDir(IniDirName)) DirListBox->Directory = IniDirName; else DirListBox->Directory = "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(); SetGroup(15); InitData(); if (FileListBox->Items->Count) ViewTag(); if (!FileListBox->Items->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) { // } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormDestroy(TObject *Sender) { 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) } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormShow(TObject *Sender) { int i, j, fcnt, scan, ec, w, h, cnt; 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; iData3D->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; 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; 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; /* // 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 : " + AnsiString(cnt); FileListBox->Update(); if (!(MainImageForm->Data3D->GroupList[0].Filter&0x80)) CheckBox1->Checked = true; else { seAvg1->Value = 3; seAve2->Value = 3; seAve3->Value = 3; seAve4->Value = 3; } Show_FabricSize(); return; fail: if (Bitmap) delete Bitmap; if (cb) { if (dc) cb->DeleteDC(dc); delete cb; } EXCEPTION_MESSAGE_OK(ec); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::DirListBoxChange(TObject *Sender) { TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; InitData(); if (FileListBox->Items->Count) ViewTag(); Screen->Cursor = OldCursor; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::sbReportClick(TObject *Sender) { int i; TSpeedButton *s = (TSpeedButton *)Sender; if (s->Tag == 0) { for(i = 0 ; i < FileListBox->Items->Count; i++) { lvView->Items->Item[i]->ImageIndex = i; } lvView->ViewStyle = vsIcon; } else if (s->Tag == 1) { for(i = 0 ; i < FileListBox->Items->Count; i++) { lvView->Items->Item[i]->ImageIndex = FilterComboBox->ItemIndex; } lvView->ViewStyle = vsSmallIcon; } else { for(i = 0 ; i < FileListBox->Items->Count; i++) { lvView->Items->Item[i]->ImageIndex = FilterComboBox->ItemIndex; } lvView->ViewStyle = vsReport; } if (!FileListBox->Items->Count ||(MainImageForm->Data3D->FabricList->Count >= 8)) sbAdd->Enabled = false; else sbAdd->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::FilterComboBoxChange(TObject *Sender) { TCursor OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; InitData(); if (FileListBox->Items->Count) ViewTag(); if (!FileListBox->Items->Count ||(MainImageForm->Data3D->FabricList->Count >= 8)) sbAdd->Enabled = false; else sbAdd->Enabled = true; Screen->Cursor = OldCursor; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvSelectDblClick(TObject *Sender) { TListItem *pItem; char *abc[8] = { "A", "B", "C", "D", "E", "F", "G", "H" }; TFabricData *c; int i, j, n; if (sbDelete->Down) { n = lvSelect->Items->IndexOf(lvSelect->ItemFocused); lvSelect->Items->Delete(n); 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==stGroup1->Tag-1) cbFabric1->ItemIndex = 0; else if (i==stGroup2->Tag-1) cbFabric2->ItemIndex = 0; else if (i==stGroup3->Tag-1) cbFabric3->ItemIndex = 0; else if (i==stGroup4->Tag-1) cbFabric4->ItemIndex = 0; } } } for (i=n; iItems->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; } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvViewDblClick(TObject *Sender) { 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; if (sbAdd->Down || (sbReplace->Down && replaceSW)) { if (MainImageForm->Data3D->FabricList->Count < 8) { if(lvView->Selected == NULL)return; OldCursor = Screen->Cursor; Screen->Cursor = crHourGlass; AnsiString fn = lvView->Items->Item[lvView->Selected->Index]->Caption; if ((pBitmap = new TUnionBitmap)==NULL) goto fail; if (FilterComboBox->ItemIndex == 0 || FilterComboBox->ItemIndex == 1) { if ((hFile = CreateFile(fn.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { ec = EC_FILE_NOT_OPEN; goto fail; } if ((ec = LoadFromTexpiaFile(hFile, MainImageForm->Palette, tpfh, pBitmap))!=EC_NONE) goto fail; CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; 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 (!Choice(pFabric, mean)) goto fail; PaletteForm->DIB256Palette->Repaint(); ProgressBar->Position = 100; } else { if (!pBitmap->LoadFromFile(fn)) { ec = EC_FILE_NOT_READ; goto fail; } 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 (!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(); } } 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; Screen->Cursor = OldCursor; EXCEPTION_MESSAGE_OK(ec); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::sbSimulationClick(TObject *Sender) { RECT r; int i, kindoffail = 0; Menu3DForm->Lengthstep = 0; if (Menu3DForm->CopySelect <= 0 && sbSelect->Down){ ShowMessage("Click middle button to SelectPattern"); sbSimulation->Down = false; 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; } #ifndef CARPET MainImageForm->ResetDraw(); //lhskys Á÷¼± ÀÜ»ó Á¦°Å¸¦ À§Çؼ­ #endif ::RepaintImage(); sbSimulation->Down = false; ProgressBar->Position = 0; Menu3DForm->sbMCopy->Enabled = true; Screen->Cursor = OldCursor; 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; } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::EditKeyPress(TObject *Sender, char &Key) { TEdit *s = (TEdit *)Sender; if (Key == 13) { if (eSmRatio1 == s) { if (StrToInt(eSmRatio1->Text) >= 1 && StrToInt(eSmRatio1->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = StrToInt(eSmRatio1->Text) / 100.0; } else { eSmRatio1->Text = "80"; } } else if (eSmRatio2 == s) { if (StrToInt(eSmRatio2->Text) >= 1 && StrToInt(eSmRatio2->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = StrToInt(eSmRatio2->Text) / 100.0; } else { eSmRatio2->Text = "80"; } } else if (eSmRatio3 == s) { if (StrToInt(eSmRatio3->Text) >= 1 && StrToInt(eSmRatio3->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = StrToInt(eSmRatio3->Text) / 100.0; } else { eSmRatio3->Text = "80"; } } else if (eSmRatio4== s) { if (StrToInt(eSmRatio4->Text) >= 1 && StrToInt(eSmRatio4->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = StrToInt(eSmRatio4->Text) / 100.0; } else { eSmRatio4->Text = "80"; } } else if (eRatioX1 == s) { if (StrToInt(eRatioX1->Text) >= 1 && StrToInt(eRatioX1->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = StrToInt(eRatioX1->Text); eRatioY1->SetFocus(); eRatioY1->Enabled = true; } else { eRatioX1->Text = "100"; } } else if (eRatioX2 == s) { if (StrToInt(eRatioX2->Text) >= 1 && StrToInt(eRatioX2->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = StrToInt(eRatioX2->Text); eRatioY2->SetFocus(); eRatioY2->Enabled = true; } else { eRatioX2->Text = "100"; } } else if (eRatioX3 == s) { if (StrToInt(eRatioX3->Text) >= 1 && StrToInt(eRatioX3->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = StrToInt(eRatioX3->Text); eRatioY3->SetFocus(); eRatioY3->Enabled = true; } else { eRatioX3->Text = "100"; } } else if (eRatioX4 == s) { if (StrToInt(eRatioX4->Text) >= 1 && StrToInt(eRatioX4->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = StrToInt(eRatioX4->Text); eRatioY4->SetFocus(); eRatioY4->Enabled = true; } else { eRatioX4->Text = "100"; } } else if (eRatioY1 == s) { if (StrToInt(eRatioY1->Text) >= 1 && StrToInt(eRatioY1->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = StrToInt(eRatioY1->Text); } else { eRatioY1->Text = "100"; } } else if (eRatioY2 == s) { if (StrToInt(eRatioY2->Text) >= 1 && StrToInt(eRatioY2->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = StrToInt(eRatioY2->Text); } else { eRatioY2->Text = "100"; } } else if (eRatioY3 == s) { if (StrToInt(eRatioY3->Text) >= 1 && StrToInt(eRatioY3->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = StrToInt(eRatioY3->Text); } else { eRatioY3->Text = "100"; } } else if (eRatioY4 == s) { if (StrToInt(eRatioY4->Text) >= 1 && StrToInt(eRatioY4->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = StrToInt(eRatioY4->Text); } else { eRatioY4->Text = "100"; } } MainImageForm->Modify = true; } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::EditMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TEdit *s = (TEdit *)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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY1->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio1->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY2->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio2->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY3->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio3->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY4->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio4->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY1->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio1->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY2->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio2->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY3->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio3->Text = 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->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.x; eRatioY4->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FRatio.y; eSmRatio4->Text = MainImageForm->Data3D->GroupList[s->Tag - 1].FOverlay * 100; seAve4->Value = MainImageForm->Data3D->GroupList[s->Tag-1].Filter; } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ComboBoxChange(TObject *Sender) { TComboBox *s = (TComboBox *)Sender; TFabricData *c; if (s->ItemIndex <= MainImageForm->Data3D->FabricList->Count) { if (s == cbFabric1) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FFabric = c->Fabric; if (cbSize->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = StrToInt(eRatioX1->Text); MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = StrToInt(eRatioY1->Text); } else { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = 100; } MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = StrToInt(eSmRatio1->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FMean = c->Mean; } } else if (s == cbFabric2) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FFabric = c->Fabric; if (cbSize->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = StrToInt(eRatioX2->Text); MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = StrToInt(eRatioY2->Text); } else { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = 100; } MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = StrToInt(eSmRatio2->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FMean = c->Mean; } } else if (s == cbFabric3) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FFabric = c->Fabric; if (cbSize->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = StrToInt(eRatioX3->Text); MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = StrToInt(eRatioY3->Text); } else { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = 100; } MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = StrToInt(eSmRatio3->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FMean = c->Mean; } } else if (s == cbFabric4) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FFabric = c->Fabric; if (cbSize->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = StrToInt(eRatioX4->Text); MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = StrToInt(eRatioY4->Text); } else { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = 100; } MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = StrToInt(eSmRatio4->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FMean = c->Mean; } } /* if (s == cbFabric1) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = StrToInt(eRatioX1->Text); MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = StrToInt(eRatioY1->Text); MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = StrToInt(eSmRatio1->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FMean = c->Mean; } } else if (s == cbFabric2) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = StrToInt(eRatioX2->Text); MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = StrToInt(eRatioY2->Text); MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = StrToInt(eSmRatio2->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FMean = c->Mean; } } else if (s == cbFabric3) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = StrToInt(eRatioX3->Text); MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = StrToInt(eRatioY3->Text); MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = StrToInt(eSmRatio3->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FMean = c->Mean; } } else if (s == cbFabric4) { if (s->ItemIndex == 0) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FIndex = 0; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FFabric = 0; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = 100; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = 100; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = 0.8; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FMean = 0; } else if (s->ItemIndex > 0) { c = (TFabricData *)MainImageForm->Data3D->FabricList->Items[s->ItemIndex - 1]; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FIndex = s->ItemIndex; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FFabric = c->Fabric; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = StrToInt(eRatioX4->Text); MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = StrToInt(eRatioY4->Text); MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = StrToInt(eSmRatio4->Text) / 100.0; MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FMean = c->Mean; } } */ } else { MessageDlg(IDS_MESSAGE_FINDFABRIC, mtConfirmation, TMsgDlgButtons()<ItemIndex = 0; } /* if (s == cbFabric1) { s->Text = s->Items->Strings[MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FIndex]; } else if (s == cbFabric2) { s->Text = s->Items->Strings[MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FIndex]; } else if (s == cbFabric3) { s->Text = s->Items->Strings[MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FIndex]; } else if (s == cbFabric4) { s->Text = s->Items->Strings[MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FIndex]; } */ } MainImageForm->Modify = true; } //--------------------------------------------------------------------------- // Private Method //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ViewTag(void) { TFileInfor *fi = NULL; int i, ec = EC_NONE; TTexVersion ver; TListItem *pItem = 0; AnsiString fn; Graphics::TBitmap *icon = NULL; HANDLE hFile = INVALID_HANDLE_VALUE; DWORD size; FILETIME fTime, fLocTime; SYSTEMTIME SysTime; HDC hDC = NULL; BITMAPHANDLE bh; int count = FileListBox->Items->Count; if ((fi = new TFileInfor)==NULL) { ec = EC_MEMORY_LACK; goto fail; } if ((fi->Bitmap = new Graphics::TBitmap)==NULL) { ec = EC_MEMORY_LACK; goto fail; } if ((icon = new Graphics::TBitmap)==NULL) { ec = EC_MEMORY_LACK; goto fail; } icon->PixelFormat = pf24bit; icon->Width = 16; icon->Height = 16; icon->Handle = LoadImage(HInstance,"icontex",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"icontfc",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"iconbmp",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"iconpct",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"iconpcx",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"iconpng",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"iconpsd",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"iconras",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"icontga",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); icon->Handle = LoadImage(HInstance,"icontif",IMAGE_BITMAP,16,16,LR_DEFAULTSIZE); STagList->Add(icon, NULL); memset(&bh, 0, sizeof(BITMAPHANDLE)); for (i = 0; i < count; i++) { fn = FileListBox->Items->Strings[i]; if (FilterComboBox->ItemIndex == 0 || FilterComboBox->ItemIndex == 1) { if ((hFile = CreateFile(fn.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto next; if (!LoadFromTexpiaTag(hFile, fi, &ver)) goto next; } else { if (L_LoadBitmap(fn.c_str(), &bh, 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(fn.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 = fn; // pItem->ImageIndex = i; if(sbLarge->Down == true){ pItem->ImageIndex = i; }else { pItem->ImageIndex = FilterComboBox->ItemIndex; } size = GetFileSize(hFile, NULL); pItem->SubItems->Add(AnsiString(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: 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; 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); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::InitData(void) { lvView->Items->Clear(); LTagList->Clear(); STagList->Clear(); replaceSW = false; } //--------------------------------------------------------------------------- // Public Method //--------------------------------------------------------------------------- bool __fastcall TFabric3DForm::Choice(TPBitmap *AFabric, Byte AMean) { int w, bitsize, i; TListItem *pItem; Graphics::TBitmap *Bitmap = NULL; TFabricData *c; if (sbReplace->Down) { if ((pItem = lvSelect->ItemFocused)==NULL) goto fail; if ((Bitmap = new Graphics::TBitmap)==NULL) goto fail; LTagList->GetBitmap(lvView->Selected->Index, Bitmap); // ImageLoad(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); // ImageLoad(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; /* // 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; } } return true; fail: if (Bitmap) delete Bitmap; return false; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::SetGroup(int n) { TData3D *dp = MainImageForm->Data3D; if (n&1) { stGroup1->Caption = IDS_GROUP1; stGroup1->Tag = 1; eSmRatio1->Text = dp->GroupList[stGroup1->Tag - 1].FOverlay * 100; eRatioY1->Text = dp->GroupList[stGroup1->Tag - 1].FRatio.y; eRatioX1->Text = dp->GroupList[stGroup1->Tag - 1].FRatio.x; cbFabric1->ItemIndex = dp->GroupList[stGroup1->Tag - 1].FIndex; } if (n&2) { stGroup2->Caption = IDS_GROUP2; stGroup2->Tag = 2; eSmRatio2->Text = dp->GroupList[stGroup2->Tag - 1].FOverlay * 100; eRatioY2->Text = dp->GroupList[stGroup2->Tag - 1].FRatio.y; eRatioX2->Text = dp->GroupList[stGroup2->Tag - 1].FRatio.x; cbFabric2->ItemIndex = dp->GroupList[stGroup2->Tag - 1].FIndex; } if (n&4) { stGroup3->Caption = IDS_GROUP3; stGroup3->Tag = 3; eSmRatio3->Text = dp->GroupList[stGroup3->Tag - 1].FOverlay * 100; eRatioY3->Text = dp->GroupList[stGroup3->Tag - 1].FRatio.y; eRatioX3->Text = dp->GroupList[stGroup3->Tag - 1].FRatio.x; cbFabric3->ItemIndex = dp->GroupList[stGroup3->Tag - 1].FIndex; } if (n&8) { stGroup4->Caption = IDS_GROUP4; stGroup4->Tag = 4; eSmRatio4->Text = dp->GroupList[stGroup4->Tag - 1].FOverlay * 100; eRatioY4->Text = dp->GroupList[stGroup4->Tag - 1].FRatio.y; eRatioX4->Text = dp->GroupList[stGroup4->Tag - 1].FRatio.x; cbFabric4->ItemIndex = dp->GroupList[stGroup4->Tag - 1].FIndex; } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormResize(TObject *Sender) { 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::CheckBox1Click(TObject *Sender) { int i; if(seAvg1->Enabled) seAvg1->Enabled = false; else seAvg1->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 (CheckBox1->Checked) { if (!(MainImageForm->Data3D->GroupList[0].Filter&0x80)) { seAvg1->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; } else { MainImageForm->Data3D->GroupList[0].Filter = seAvg1->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[0].Filter = seAvg1->Value; } else { MainImageForm->Data3D->GroupList[0].Filter = 0x83; } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::AvgKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { TPSpinEdit *s = (TPSpinEdit *)Sender; if (Key == 13) { if (s == seAvg1) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].Filter = s->Value; } else if (s == seAve2) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].Filter = s->Value; } else if (s == seAve3) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].Filter = s->Value; } else if (s == seAve4) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].Filter = s->Value; } } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::SeditorChange(TObject *Sender) { TPSpinEdit *s = (TPSpinEdit *)Sender; if (!(MainImageForm->Data3D->GroupList[0].Filter&0x80)) { if (s == seAvg1) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].Filter = s->Value; } else if (s == seAve2) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].Filter = s->Value; } else if (s == seAve3) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].Filter = s->Value; } else if (s == seAve4) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].Filter = s->Value; } } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::lvSelectClick(TObject *Sender) { if (sbReplace->Down) replaceSW = true; else replaceSW = false; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::FormCloseQuery(TObject *Sender, bool &CanClose) { HidePatternForm(); #ifndef CARPET MainImageForm->ResetDraw(); //lhskys Á÷¼± ÀÜ»ó Á¦°Å¸¦ À§Çؼ­ #endif MainImageForm->iMainImage->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::HidePatternForm() { if (PatternForm) PatternForm->Hide(); if (MainImageForm->iMainImage->OnPaintZoom) { MainImageForm->iMainImage->OnPaintZoom = NULL; MainImageForm->iMainImage->Invalidate(); } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ShowIndex() { PatternForm->stGroupIndex->Caption = IntToStr(GroupIndex+1); PatternForm->stGridIndex->Caption = IntToStr(GridIndex+1); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ShowFabric(TPBitmap *pattern) { PatternForm->ShowFabric(pattern); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ResetGridArray_Group() { int i, k, m, cd, pd; TData3D *tp, *dp = MainImageForm->Data3D; AnsiString str; for (i=0; ifn[i].cnt > 1) { pd = dp->fn[i].sn[0]; for (k=1; kfn[i].cnt; k++) { cd = dp->fn[i].sn[k]; if (pd == cd) { for (m=0; mfn[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; } } } } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::cbSizeChange(TObject *Sender) { double len, slen; if (cbSize->ItemIndex == 0) { Label7->Caption = IDS_RATIO; pSize->SendToBack(); pSize->Visible = false; Menu3DForm->ResetStep(); } else if (cbSize->ItemIndex == 1) { Label7->Caption = "Each Size"; pSize->BringToFront(); pSize->Visible = true; Label10->Visible = true; Label11->Visible = true; rxGroup->Visible = true; PatternEdit->Visible = true; rxGroup->Value = 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->Text = Format("%.2f",OPENARRAY(TVarRec,(len))); ImageEdit->Text = 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->Text = Format("%.2f",OPENARRAY(TVarRec,(len))); ImageEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(slen))); } else { PatternEdit->Text = IntToStr(MainImageForm->Data3D->F_Length[0]); ImageEdit->Text = IntToStr(MainImageForm->Data3D->M_Length); } Menu3DForm->ResetStep(); } else { Label7->Caption = "Model Size"; pSize->BringToFront(); pSize->Visible = true; Label10->Visible = false; Label11->Visible = false; rxGroup->Visible = false; PatternEdit->Visible = false; if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length*2.54/MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(slen))); } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length/MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(slen))); } else { ImageEdit->Text = IntToStr(MainImageForm->Data3D->M_Length); } Menu3DForm->ResetStep(); } MainImageForm->Data3D->SizeItem = cbSize->ItemIndex; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::SizeEditClick(TObject *Sender) { TEdit *Edit = (TEdit *)Sender; Edit->SetFocus(); Edit->SelectAll(); } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::rxGroupChange(TObject *Sender) { int index = rxGroup->Value; double len; TData3D *dp = MainImageForm->Data3D; 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->Text = Format("%.2f",OPENARRAY(TVarRec,(len))); } else if (MainImageForm->CurrentUnit == uInch) { len = MainImageForm->Data3D->F_Length[index-1]/MainImageForm->CanvasInfor.DotsPerInch; PatternEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(len))); } else { PatternEdit->Text = IntToStr(MainImageForm->Data3D->F_Length[index-1]); } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::Show_FabricSize() { int iw, ih, fcnt, i, DPI; double dw, dh; char *abc[8] = { "A", "B", "C", "D", "E", "F", "G", "H" }; AnsiString str; TFabricData *c; TListItem *pItem; DPI = MainImageForm->CanvasInfor.DotsPerInch; fcnt = MainImageForm->Data3D->FabricList->Count; for (i=0; iData3D->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->Text = Format("%.2f",OPENARRAY(TVarRec,(len))); ImageEdit->Text = 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->Text = Format("%.2f",OPENARRAY(TVarRec,(len))); ImageEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(slen))); } else { PatternEdit->Text = IntToStr(MainImageForm->Data3D->F_Length[0]); ImageEdit->Text = IntToStr(MainImageForm->Data3D->M_Length); } } else if (cbSize->ItemIndex == 2) { if (MainImageForm->CurrentUnit == uCm) { slen = MainImageForm->Data3D->M_Length*2.54/MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(slen))); } else if (MainImageForm->CurrentUnit == uInch) { slen = MainImageForm->Data3D->M_Length/MainImageForm->CanvasInfor.DotsPerInch; ImageEdit->Text = Format("%.2f",OPENARRAY(TVarRec,(slen))); } else { ImageEdit->Text = IntToStr(MainImageForm->Data3D->M_Length); } } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::PatternEditKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { int DPI, index; index = rxGroup->Value; DPI = MainImageForm->CanvasInfor.DotsPerInch; if (Key == VK_RETURN) { if (MainImageForm->CurrentUnit == uCm) { MainImageForm->Data3D->F_Length[index-1] = StrToFloat(PatternEdit->Text)*DPI/2.54; } else if (MainImageForm->CurrentUnit == uInch) { MainImageForm->Data3D->F_Length[index-1] = StrToFloat(PatternEdit->Text)*DPI; } else { MainImageForm->Data3D->F_Length[index-1] = StrToInt(PatternEdit->Text); } 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-1];// } // } } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ImageEditKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { int DPI = MainImageForm->CanvasInfor.DotsPerInch; AnsiString str = ImageEdit->Text; if (Key == VK_RETURN) { if (MainImageForm->CurrentUnit == uCm) { MainImageForm->Data3D->M_Length = StrToFloat(str)*DPI/2.54; } else if (MainImageForm->CurrentUnit == uInch) { MainImageForm->Data3D->M_Length = StrToFloat(str)*DPI; } else { MainImageForm->Data3D->M_Length = StrToInt(str); } } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::cbPointClick(TObject *Sender) { if (cbPoint->Checked) { spPoint->Enabled = true; } else { spPoint->Enabled = false; HidePatternForm(); } MainImageForm->Data3D->FitPoint = cbPoint->Checked; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::spPointClick(TObject *Sender) { int j, k; int 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; 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; } return; fail: EXCEPTION_MESSAGE_OK(ec); } //--------------------------------------------------------------------------- bool __fastcall TFabric3DForm::DoSetPoint() { if (PatternForm) return PatternForm->Visible; else return false; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::shadowChange(TObject *Sender) { TEdit *s = (TEdit *)Sender; if (eSmRatio1 == s) { if (StrToInt(eSmRatio1->Text) >= 1 && StrToInt(eSmRatio1->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = StrToInt(eSmRatio1->Text) / 100.0; } else { eSmRatio1->Text = "80"; } } else if (eSmRatio2 == s) { if (StrToInt(eSmRatio2->Text) >= 1 && StrToInt(eSmRatio2->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = StrToInt(eSmRatio2->Text) / 100.0; } else { eSmRatio2->Text = "80"; } } else if (eSmRatio3 == s) { if (StrToInt(eSmRatio3->Text) >= 1 && StrToInt(eSmRatio3->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = StrToInt(eSmRatio3->Text) / 100.0; } else { eSmRatio3->Text = "80"; } } else if (eSmRatio4== s) { if (StrToInt(eSmRatio4->Text) >= 1 && StrToInt(eSmRatio4->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = StrToInt(eSmRatio4->Text) / 100.0; } else { eSmRatio4->Text = "80"; } } else if (eRatioX1 == s) { if (StrToInt(eRatioX1->Text) >= 1 && StrToInt(eRatioX1->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = StrToInt(eRatioX1->Text); eRatioY1->SetFocus(); eRatioY1->Enabled = true; } else { eRatioX1->Text = "100"; } } else if (eRatioX2 == s) { if (StrToInt(eRatioX2->Text) >= 1 && StrToInt(eRatioX2->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = StrToInt(eRatioX2->Text); eRatioY2->SetFocus(); eRatioY2->Enabled = true; } else { eRatioX2->Text = "100"; } } else if (eRatioX3 == s) { if (StrToInt(eRatioX3->Text) >= 1 && StrToInt(eRatioX3->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = StrToInt(eRatioX3->Text); eRatioY3->SetFocus(); eRatioY3->Enabled = true; } else { eRatioX3->Text = "100"; } } else if (eRatioX4 == s) { if (StrToInt(eRatioX4->Text) >= 1 && StrToInt(eRatioX4->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = StrToInt(eRatioX4->Text); eRatioY4->SetFocus(); eRatioY4->Enabled = true; } else { eRatioX4->Text = "100"; } } else if (eRatioY1 == s) { if (StrToInt(eRatioY1->Text) >= 1 && StrToInt(eRatioY1->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = StrToInt(eRatioY1->Text); } else { eRatioY1->Text = "100"; } } else if (eRatioY2 == s) { if (StrToInt(eRatioY2->Text) >= 1 && StrToInt(eRatioY2->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = StrToInt(eRatioY2->Text); } else { eRatioY2->Text = "100"; } } else if (eRatioY3 == s) { if (StrToInt(eRatioY3->Text) >= 1 && StrToInt(eRatioY3->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = StrToInt(eRatioY3->Text); } else { eRatioY3->Text = "100"; } } else if (eRatioY4 == s) { if (StrToInt(eRatioY4->Text) >= 1 && StrToInt(eRatioY4->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = StrToInt(eRatioY4->Text); } else { eRatioY4->Text = "100"; } } MainImageForm->Modify = true; } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::ImageEditChange(TObject *Sender) { int DPI = MainImageForm->CanvasInfor.DotsPerInch; AnsiString str = ImageEdit->Text; if (MainImageForm->CurrentUnit == uCm) { MainImageForm->Data3D->M_Length = StrToFloat(str)*DPI/2.54; } else if (MainImageForm->CurrentUnit == uInch) { MainImageForm->Data3D->M_Length = StrToFloat(str)*DPI; } else { MainImageForm->Data3D->M_Length = StrToInt(str); } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::PatternEditChange(TObject *Sender) { int DPI, index; index = rxGroup->Value; DPI = MainImageForm->CanvasInfor.DotsPerInch; if (MainImageForm->CurrentUnit == uCm) { MainImageForm->Data3D->F_Length[index-1] = StrToFloat(PatternEdit->Text)*DPI/2.54; } else if (MainImageForm->CurrentUnit == uInch) { MainImageForm->Data3D->F_Length[index-1] = StrToFloat(PatternEdit->Text)*DPI; } else { MainImageForm->Data3D->F_Length[index-1] = StrToInt(PatternEdit->Text); } 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-1];// } // } } //--------------------------------------------------------------------------- void __fastcall TFabric3DForm::eRatioChange(TObject *Sender) { TEdit *s = (TEdit *)Sender; if (eSmRatio1 == s) { if (StrToInt(eSmRatio1->Text) >= 1 && StrToInt(eSmRatio1->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FOverlay = StrToInt(eSmRatio1->Text) / 100.0; } else { eSmRatio1->Text = "80"; } } else if (eSmRatio2 == s) { if (StrToInt(eSmRatio2->Text) >= 1 && StrToInt(eSmRatio2->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FOverlay = StrToInt(eSmRatio2->Text) / 100.0; } else { eSmRatio2->Text = "80"; } } else if (eSmRatio3 == s) { if (StrToInt(eSmRatio3->Text) >= 1 && StrToInt(eSmRatio3->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FOverlay = StrToInt(eSmRatio3->Text) / 100.0; } else { eSmRatio3->Text = "80"; } } else if (eSmRatio4== s) { if (StrToInt(eSmRatio4->Text) >= 1 && StrToInt(eSmRatio4->Text) <= 160) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FOverlay = StrToInt(eSmRatio4->Text) / 100.0; } else { eSmRatio4->Text = "80"; } } else if (eRatioX1 == s) { if (StrToInt(eRatioX1->Text) >= 1 && StrToInt(eRatioX1->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.x = StrToInt(eRatioX1->Text); eRatioY1->Enabled = true; } else { eRatioX1->Text = "100"; } } else if (eRatioX2 == s) { if (StrToInt(eRatioX2->Text) >= 1 && StrToInt(eRatioX2->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.x = StrToInt(eRatioX2->Text); eRatioY2->Enabled = true; } else { eRatioX2->Text = "100"; } } else if (eRatioX3 == s) { if (StrToInt(eRatioX3->Text) >= 1 && StrToInt(eRatioX3->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.x = StrToInt(eRatioX3->Text); eRatioY3->Enabled = true; } else { eRatioX3->Text = "100"; } } else if (eRatioX4 == s) { if (StrToInt(eRatioX4->Text) >= 1 && StrToInt(eRatioX4->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.x = StrToInt(eRatioX4->Text); eRatioY4->Enabled = true; } else { eRatioX4->Text = "100"; } } else if (eRatioY1 == s) { if (StrToInt(eRatioY1->Text) >= 1 && StrToInt(eRatioY1->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup1->Tag - 1].FRatio.y = StrToInt(eRatioY1->Text); } else { eRatioY1->Text = "100"; } } else if (eRatioY2 == s) { if (StrToInt(eRatioY2->Text) >= 1 && StrToInt(eRatioY2->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup2->Tag - 1].FRatio.y = StrToInt(eRatioY2->Text); } else { eRatioY2->Text = "100"; } } else if (eRatioY3 == s) { if (StrToInt(eRatioY3->Text) >= 1 && StrToInt(eRatioY3->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup3->Tag - 1].FRatio.y = StrToInt(eRatioY3->Text); } else { eRatioY3->Text = "100"; } } else if (eRatioY4 == s) { if (StrToInt(eRatioY4->Text) >= 1 && StrToInt(eRatioY4->Text) <= 1000) { MainImageForm->Data3D->GroupList[stGroup4->Tag - 1].FRatio.y = StrToInt(eRatioY4->Text); } else { eRatioY4->Text = "100"; } } MainImageForm->Modify = true; } //---------------------------------------------------------------------------