//--------------------------------------------------------------------------- #include #pragma hdrstop #include "YarnTable_F.h" #include "Common.h" #include "Yarn.h" #ifndef KNIT // #include "YarnArrange_F.h" #endif //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" //--------------------------------------------------------------------------- #define IDS_YARNTABLE StringTable[0] #define IDS_CURRENTDIRECTORY StringTable[1] #define IDS_YARNINFORMATION StringTable[2] #define IDS_READ StringTable[3] #define IDS_SAVE StringTable[4] #define IDS_SAVEAS StringTable[5] #define IDS_RENAME StringTable[6] #define IDS_DELETE StringTable[7] #define IDS_DELFOLDER StringTable[8] #define IDS_NEWFOLDER StringTable[9] //--------------------------------------------------------------------------- TYarnTableForm *YarnTableForm; //--------------------------------------------------------------------------- __fastcall TYarnTableForm::TYarnTableForm(TComponent* Owner) : TForm(Owner) { //=========================================== 20051117 by lhskys tdw ¼öÁ¤ StringTable.Create(BaseDir, Language, "YarnTable"); SetSmallFont(Font); SetSmallFont(Label1->Font); Caption = IDS_YARNTABLE; Label1->Caption = IDS_CURRENTDIRECTORY; YarnInforBar->Panels->Items[0]->Text = IDS_YARNINFORMATION; sbRead->Caption = IDS_READ; sbSave->Caption = IDS_SAVE; sbSaveAs->Caption = IDS_SAVEAS; sbRename->Caption = IDS_RENAME; sbDelete->Caption = IDS_DELETE; sbDelFolder->Caption = IDS_DELFOLDER; sbNewFolder->Caption = IDS_NEWFOLDER; //=========================================== // YarnTableForm->Parent = Main; YarnTableForm->Panel1->Height = 40; //9_30 YarnTableGrid->DoubleBuffered = true; } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::FormCreate(TObject *Sender) { AnsiString IniDirName; Table = new TList; //=================================================================== 20051121 by lhskys ini ÆÄÀÏ ¼öÁ¤ TIniFile *IniFile; IniFile = new TIniFile(BaseDir + "\\Main.ini"); if (IniFile) { Left = IniFile->ReadInteger("YarnTable", "FormLeft",2); Top = IniFile->ReadInteger("YarnTable", "FormTop",60); Width = IniFile->ReadInteger("YarnTable", "FormWidth",965); Height = IniFile->ReadInteger("YarnTable", "FormHeight",430); // IniDirName = IniFile->ReadString("FileManager", "DirectoryName", BaseDir+"\\tricot"); IniDirName = IniFile->ReadString("YarnTable", "DirectoryName", BaseDir+"\\tricot"); if (SetCurrentDir(IniDirName)) DirectoryListBox->Directory = IniDirName; else DirectoryListBox->Directory = BaseDir; DirectoryListBox->ItemIndex = 0; delete IniFile; } //=================================================================== if (SetCurrentDir(IniDirName)) DirectoryListBox->Directory = IniDirName; IsDrag = false; sbRead->Down = true; } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::FormDestroy(TObject *Sender) { while (Table->Count) { TYarnData *YarnData = (TYarnData *)Table->First(); Table->Remove(YarnData); delete YarnData; } delete Table; //=================================================================== 20051121 by lhskys ini ÆÄÀÏ ¼öÁ¤ TIniFile *IniFile = new TIniFile(BaseDir + "\\Main.ini"); if (IniFile) { if (Left<0) Left = 10; if (Top<0) Top = 10; IniFile->WriteInteger("YarnTable", "FormLeft", Left); IniFile->WriteInteger("YarnTable", "FormTop", Top); IniFile->WriteInteger("YarnTable", "FormWidth", Width); IniFile->WriteInteger("YarnTable", "FormHeight", Height); IniFile->WriteString("YarnTable", "DirectoryName", DirectoryListBox->Directory); delete IniFile; } //=================================================================== } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::FormClose(TObject *Sender, TCloseAction &Action) { //YarnTableFormÀÌ ÀÚµ¿ »ý¼º µÇ°Ô º¯°æÇؼ­ ÀÌ ºÎºÐÀ» ÁÖ¼® ó¸® ÇßÀ½ by maxleo21c 06.11.22 // if (FOnCloseForm) FOnCloseForm(); } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::FormResize(TObject *Sender) { int width, bw; YarnTableGrid->ColCount = (YarnTableGrid->Width-4)/100; YarnTableGrid->RowCount = (FileListBox->Items->Count-1)/YarnTableGrid->ColCount+1; width = (YarnInforBar->Width - 150) / 7; for (int i = 1; i <= 7; i++) YarnInforBar->Panels->Items[i]->Width = width ; Bevel->Width = Width - 165; bw = Panel1->Width / 7; sbRead->Left = 0; sbRead->Width = bw; sbSave->Left = sbRead->Left + bw; sbSave->Width = bw; sbSaveAs->Left = sbSave->Left + bw; sbSaveAs->Width = bw; sbRename->Left = sbSaveAs->Left + bw; sbRename->Width = bw; sbDelete->Left = sbRename->Left + bw; sbDelete->Width = bw; sbDelFolder->Left = sbDelete->Left + bw; sbDelFolder->Width = bw; sbNewFolder->Left = sbDelFolder->Left + bw; sbNewFolder->Width = bw; } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::YarnTableGridDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { TYarnData *YarnData; int x, y; TPoint sp; TSize vs = { 96, 92 }; int n = ARow*YarnTableGrid->ColCount+ACol; if (nItems->Count) { YarnData = (TYarnData *)Table->Items[n]; sp.x = Rect.Left+2; sp.y = Rect.Top + 2; YarnData->Draw(YarnTableGrid->Canvas, sp, vs); TRect TextRect = TRect(Rect.Left, Rect.Top + (vs.cy + 4), Rect.Right, Rect.Bottom); x = ((vs.cx + 4) - YarnTableGrid->Canvas->TextWidth(YarnData->FileName)) / 2; YarnTableGrid->Canvas->TextRect(TextRect, TextRect.Left + x, TextRect.Top+4, YarnData->FileName); } } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::FileListBoxChange(TObject *Sender) { TYarnData *YarnData; int cnt = FileListBox->Items->Count; if (Table) { while (Table->Count) { YarnData = (TYarnData *)Table->First(); Table->Remove(YarnData); delete YarnData; } for (int i=0; i < cnt; i++) { YarnData = new TYarnData; if (YarnData) { if (YarnData->LoadFromFile(FileListBox->Items->Strings[i]) == EC_NONE) { Table->Add(YarnData); } else { delete YarnData; } } } if (cnt >= YarnTableGrid->ColCount*YarnTableGrid->RowCount) YarnTableGrid->RowCount = (cnt / 3) + 1; YarnTableGrid->Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::YarnTableGridMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { AnsiString str; TYarnData *YarnData; TGridCoord cd = YarnTableGrid->MouseCoord(X, Y); if (cd.X < 0 || cd.Y < 0) { YarnInforBar->Panels->Items[1]->Text = ""; YarnInforBar->Panels->Items[2]->Text = ""; YarnInforBar->Panels->Items[3]->Text = ""; YarnInforBar->Panels->Items[4]->Text = ""; YarnInforBar->Panels->Items[5]->Text = ""; YarnInforBar->Panels->Items[6]->Text = ""; YarnInforBar->Panels->Items[7]->Text = ""; return; } int Index = cd.X + (cd.Y * YarnTableGrid->ColCount); if (Index < Table->Count) { YarnData = (TYarnData *) Table->Items[Index]; YarnInforBar->Panels->Items[1]->Text = YarnData->FileName; str = YarnData->Unit.Name(); YarnInforBar->Panels->Items[2]->Text = IntToStr(YarnData->Count) +" "+ str; if (YarnData->SZ) YarnInforBar->Panels->Items[3]->Text = "Z Twist"; else YarnInforBar->Panels->Items[3]->Text = "S Twist"; YarnInforBar->Panels->Items[4]->Text = IntToStr(YarnData->TYC) + " Twist Yarn"; YarnInforBar->Panels->Items[5]->Text = FloatToStr(YarnData->TPI) + " TPI"; if (YarnData->Dyed) YarnInforBar->Panels->Items[6]->Text = "Dyed"; else YarnInforBar->Panels->Items[6]->Text = "Not Dyed"; YarnInforBar->Panels->Items[7]->Text = IntToStr(YarnData->Colors) + " Colors"; if (YarnTableGrid->Canvas->TextWidth(YarnData->FileName) > YarnTableGrid->DefaultColWidth) { // ±ä ÆÄÀÏ À̸§Àº hint·Î º¸¿©ÁÜ by celberus YarnTableGrid->ShowHint = true; YarnTableGrid->Hint = YarnData->FileName; Application->ActivateHint(YarnTableGrid->ClientToScreen(Point(X, Y))); } else { YarnTableGrid->ShowHint = false; } } else { YarnInforBar->Panels->Items[1]->Text = ""; YarnInforBar->Panels->Items[2]->Text = ""; YarnInforBar->Panels->Items[3]->Text = ""; YarnInforBar->Panels->Items[4]->Text = ""; YarnInforBar->Panels->Items[5]->Text = ""; YarnInforBar->Panels->Items[6]->Text = ""; YarnInforBar->Panels->Items[7]->Text = ""; YarnTableGrid->ShowHint = false; } } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::YarnTableGridDblClick(TObject *Sender) { TYarnData *YarnData; int Index = YarnTableGrid->Col + (YarnTableGrid->Row * YarnTableGrid->ColCount); if (Index < Table->Count) { /* if( (!YarnArrangeForm == NULL) && (YarnArrangeForm->sbDyeChange->Down) ){ int i = YarnArrangeForm->DyeGrid->Col; if(MainImageForm->Plan->Yarn->Choice[i].Data){ YarnData = (TYarnData *) Table->Items[Index]; if (YarnData->Dyed == MainImageForm->Plan->Yarn->Choice[i].Data->Dyed) YarnArrangeForm->DyeChange(YarnData->FileName); else YarnArrangeForm->DyeChange(NULL); } } else { */ YarnData = (TYarnData *) Table->Items[Index]; if (FOnYarnChange) FOnYarnChange(YarnData->FileName); // if (FOnYarnChange) FOnYarnChange(FullPathName(DirectoryListBox->Directory,YarnData->FileName)); // } } } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::YarnTableGridMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button == mbLeft && IsDrag) { int Index = YarnTableGrid->Col + (YarnTableGrid->Row * YarnTableGrid->ColCount); //if (Index < Table->Count) YarnTableGrid->BeginDrag(false); ---->¾à°£ÀÇ ¿¡·¯¶§¹®¿¡ //Drag±â´ÉÀ» ¸·¾ÒÀ½.. } } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::InitForm(bool drag) { IsDrag = drag; } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::DirectoryListBoxDblClick(TObject *Sender) { char *str1, *str2, *str3; AnsiString Astr1, Astr2, strDir; int i = DirectoryListBox->ItemIndex; if (i != -1) { Astr1 = DirectoryListBox->Directory; Astr2 = DirectoryListBox->Items->Strings[i]; strDir = Astr1 + "\\" + Astr2; str1 = Astr1.c_str(); str2 = Astr2.c_str(); str3 = StrPos(str1, str2); if (FOnDirChange) { if (str3==NULL) FOnDirChange(strDir); // full path else FOnDirChange(Astr1); } } } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::sbNewFolderClick(TObject *Sender) { AnsiString dir = ""; if (InputQuery(IDS_COMMON_MAKEFOLDER, IDS_COMMON_INPUTNAME, dir)) { CreateDirectory(dir.c_str(), NULL); DirectoryListBox->Update(); } YarnTableForm->sbRead->Down = true; } //--------------------------------------------------------------------------- void __fastcall TYarnTableForm::sbSaveAsClick(TObject *Sender) { AnsiString fn = "Noname.yan"; if (FOnYarnChange) FOnYarnChange(fn); } //---------------------------------------------------------------------------