//--------------------------------------------------------------------------- #include #pragma hdrstop #include "SewingTerm.h" #include "Main.h" #include "AddForm.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TSewingForm *SewingForm; //--------------------------------------------------------------------------- __fastcall TSewingForm::TSewingForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TSewingForm::FormCreate(TObject *Sender) { if (Width>Screen->Width) Left = 100; else Left = (Screen->Width-Width)/2; if (Height>Screen->Height) Top = 100; else Top = (Screen->Height-Height)/2; tmp1 = new TStringList(); tmp2 = new TStringList(); files = new TStringList(); dir = MainForm->SewingTerm_Path ; KL = "\\Korean\\" ; EL = "\\English\\" ; IL = "\\Indonesia\\" ; CL = "\\Chinese\\" ; JL = "\\Japanese\\" ; Init(); } //--------------------------------------------------------------------------- void __fastcall TSewingForm::STListBoxDblClick(TObject *Sender) { if (FindText()) ModalResult = mrOk; else ModalResult = mrOk; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::Panel1Resize(TObject *Sender) { if (Panel1->Width < 100) Panel1->Width = 100; STListBox->Width = Panel1->Width - 6; TreeView1->Width = Panel1->Width - 6; if (Panel1->Height < 200) Panel1->Height = 200; STListBox->Height = Panel1->Height - 28; } //--------------------------------------------------------------------------- bool __fastcall TSewingForm::CheckFileName(AnsiString fn) { int cnt ; AnsiString tmp ; cnt = files->Count; for( int i=0 ; i < cnt ; i++) { tmp = files->Strings[i]; if( tmp == fn ) return true ; } return false ; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::TreeView1Change(TObject *Sender, TTreeNode *Node) { AnsiString tmp, exp, tx ; pnode = Node; // ÇöÀç ¼±ÅõǾîÁø ³ëµåÆ÷ÀÎÅÍ ÀúÀå... tmp = pnode->Text ; TTreeNode *node1 ; node1 = pnode->Parent; AddSection->Enabled =( node1 == NULL ) ? true : false ; int cnt, i; TIniFile *TermIni1 ; if(node1 != NULL) { filename = ""; section = ""; tx = pnode->Parent->Text ; TermIni1 = new TIniFile(dir + KL + tx + ".ini"); STListBox->Items->SetText(""); cnt = TermIni1->ReadInteger(tmp, "Count", 0); for (i = 0 ; i < cnt ; i++) { exp = TermIni1->ReadString(tmp, IntToStr(i), ""); if (exp != NULL) STListBox->Items->Add(exp); } filename = tx+".ini"; section = pnode->Text; delete TermIni1 ; } } //--------------------------------------------------------------------------- void __fastcall TSewingForm::TreeView1Expanding(TObject *Sender, TTreeNode *Node, bool &AllowExpansion) { /* TTreeNode *node1; node1 = Node->Parent; if(node1 == NULL) { STListBox->Clear(); } */ } //--------------------------------------------------------------------------- void __fastcall TSewingForm::AddSections(TAForm *Ap) { // TAForm *AddForm; // AddForm = new TAForm(this); AnsiString tn, sn ; //tn : TermName , sn : SectionName int cnt ; // tn = (AType == 0) ? Ap->TermEdit->Text : pnode->Text ; // tn = (AType == 0) ? pnode->Text : pnode->Parent->Text ; switch (AType) { case 0 : tn = Ap->TermEdit->Text; break; //add term by k3dogs(20001027) case 1 : tn = pnode->Text; break; //add section case 2 : tn = pnode->Parent->Text;break; //edit section } sn = Ap->SecEdit->Text ; cnt = Ap->Memo1->Lines->Count ; TIniFile *TermIni_k; // Korea TIniFile *TermIni_e; // English TIniFile *TermIni_i; // Indonasia TIniFile *TermIni_c; // China TIniFile *TermIni_j; // Japan TermIni_k = new TIniFile(dir + KL + tn + ".ini" ); TermIni_e = new TIniFile(dir + EL + tn + ".ini" ); TermIni_i = new TIniFile(dir + IL + tn + ".ini" ); TermIni_c = new TIniFile(dir + CL + tn + ".ini" ); TermIni_j = new TIniFile(dir + JL + tn + ".ini" ); TermIni_k->WriteInteger(sn, "Count" , cnt ); TermIni_e->WriteInteger(sn, "Count" , cnt ); TermIni_i->WriteInteger(sn, "Count" , cnt ); TermIni_c->WriteInteger(sn, "Count" , cnt ); TermIni_j->WriteInteger(sn, "Count" , cnt ); for (int i = 0 ; i < cnt ; i++) { TermIni_k->WriteString(sn, IntToStr(i), Ap->Memo1->Lines->Strings[i]); TermIni_e->WriteString(sn, IntToStr(i), Ap->Memo1->Lines->Strings[i]); TermIni_i->WriteString(sn, IntToStr(i), Ap->Memo1->Lines->Strings[i]); TermIni_c->WriteString(sn, IntToStr(i), Ap->Memo1->Lines->Strings[i]); TermIni_j->WriteString(sn, IntToStr(i), Ap->Memo1->Lines->Strings[i]); } // ´Ù½Ã Àоîµé¸²/////// TreeView1->Items->Clear(); Init(); /////////////////////// STListBox->Items->Clear(); delete TermIni_k; delete TermIni_e; delete TermIni_i; delete TermIni_c; delete TermIni_j; // delete AddForm; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::AddTermClick(TObject *Sender) { // AType = T_Term ; AType = T_AddTerm ; TAForm *AddForm; AddForm = new TAForm(this); AnsiString tn, sn ; AddForm->TermLabel->Visible = true; AddForm->TermEdit->Visible = true; if ((AddForm->ShowModal()) == mrOk) { tn = AddForm->TermEdit->Text ; sn = AddForm->SecEdit->Text ; if( tn != "" && sn != "" ) { if( ! CheckFileName(tn) ) // µ¿ÀÏ À̸§ÀÇ ini FileÀÌ Á¸ÀçÇÏÁö ¾ÊÀ»°æ¿ì { AddSections(AddForm) ; } else // µ¿ÀÏ À̸§ÀÇ ini FileÀÌ Á¸ÀçÇÒ °æ¿ì { int k ; k = MessageBox( AddForm->Handle, " Exist same Term Overwrite ? ", "Found Same Term Name" , MB_OKCANCEL + MB_ICONEXCLAMATION ); if (k == 1) // OK ¹öưÀ» ´­·¶À» °æ¿ì { AddSections(AddForm) ; } } } } delete AddForm ; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::AddSectionClick(TObject *Sender) { // AType = T_Section ; AType = T_AddSection ; TAForm *AddForm; AddForm = new TAForm(this); AnsiString sn ; if ((AddForm->ShowModal()) == mrOk) { sn = AddForm->SecEdit->Text ; if( sn != "" ) { if( ! CheckSectionName(sn) ) // µ¿ÀÏÇÑ Section Name ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ»°æ¿ì { AddSections(AddForm) ; } else // µ¿ÀÏÇÑ Section Name ÀÌ Á¸ÀçÇÒ °æ¿ì { int k ; k = MessageBox( AddForm->Handle, " Exist same Section Overwrite ? ", "Found Same Section Name" , MB_OKCANCEL + MB_ICONEXCLAMATION); if (k == 1) // OK ¹öưÀ» ´­·¶À» °æ¿ì { AddSections(AddForm) ; } } } } delete AddForm ; } //--------------------------------------------------------------------------- bool __fastcall TSewingForm::CheckSectionName(AnsiString sec) { int cnt; TIniFile *TermIni1; AnsiString tmp ; tmp = pnode->Text; TermIni1 = new TIniFile(dir + KL + tmp + ".ini" ); if (TermIni1->SectionExists(sec)) return true; else return false; // µ¿ÀÏ À̸§ÀÇ ¼½¼ÇÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ } //--------------------------------------------------------------------------- bool __fastcall TSewingForm::ReadIniFileName() { WIN32_FIND_DATA filedata ; // ÆÄÀÏ µ¥ÀÌÅÍÀÇ ½ºÆ®·°ÃÄ HANDLE filehandle ; // °Ë»öÀÇ ÇÚµé AnsiString tmp ; int length; filehandle = FindFirstFile((dir + KL + "*.ini").c_str(), &filedata ); if (filehandle != INVALID_HANDLE_VALUE) { do { tmp = filedata.cFileName; length = tmp.Length(); files->Add(tmp.SubString(1, length-4)); // µð·ºÅ丮 ³»ÀÇ È®ÀåÀÚ¸íÀ» Á¦¿ÜÇÑ ÆÄÀÏ À̸§À» ÀúÀå } while (FindNextFile (filehandle, &filedata)) ; FindClose(filehandle); return true ; } else if (filehandle == INVALID_HANDLE_VALUE ) { GetLastError(); //Application->ProcessMessages(); // MessageBox( SewingForm->Handle , " File not found !!! " , "Caution" ,MB_OK + MB_ICONEXCLAMATION); return false ; } } //--------------------------------------------------------------------------- void __fastcall TSewingForm::Init() { AnsiString tx ; int cnt, i , count ,k; TIniFile *TermIni1 ; TTreeNode *node1 ; tmp1->Clear(); // Section List ÃʱâÈ­ tmp2->Clear(); files->Clear(); if ( ReadIniFileName() ) { for( i = 0 ; i < files->Count ; i++ ) { TermIni1 = new TIniFile(dir + KL + files->Strings[i] + ".ini"); TermIni1->ReadSections(tmp1); count = tmp1->Count; node1 = TreeView1->Items->Add(NULL, files->Strings[i]); for (k = 0 ; k < count ; k++) { tx = tmp1->Strings[k]; TreeView1->Items->AddChild(node1, tx); } delete TermIni1; } } pnode = NULL; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::FormDestroy(TObject *Sender) { delete tmp1; delete tmp2; delete files; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::DeleteClick(TObject *Sender) { AnsiString tx, tmp; TTreeNode *node1 ; node1 = pnode->Parent; if( node1 != NULL) // ™DÅõȳëµå°¡ Section ³ëµåÀÓÀ¸·Î ÇØ´ç SectionÀ» »èÁ¦ { tmp = pnode->Text ; tx = node1->Text ; TIniFile *TermIni_k; // Korea TIniFile *TermIni_e; // English TIniFile *TermIni_i; // Indonasia TIniFile *TermIni_c; // China TIniFile *TermIni_j; // Japan TermIni_k = new TIniFile(dir + KL + tx + ".ini" ); TermIni_e = new TIniFile(dir + EL + tx + ".ini" ); TermIni_i = new TIniFile(dir + IL + tx + ".ini" ); TermIni_c = new TIniFile(dir + CL + tx + ".ini" ); TermIni_j = new TIniFile(dir + JL + tx + ".ini" ); TermIni_k->EraseSection( tmp ); TermIni_e->EraseSection( tmp ); TermIni_i->EraseSection( tmp ); TermIni_c->EraseSection( tmp ); TermIni_j->EraseSection( tmp ); delete TermIni_k; delete TermIni_e; delete TermIni_i; delete TermIni_c; delete TermIni_j; /////// ´Ù½Ã Àоîµé¸² //////// // TreeView1->Items->Clear(); // Init(); // STListBox->Items->SetText(""); ////////////////////////////// } else if (node1 == NULL) // ¼±ÅÃµÈ ³ëµå°¡ Term ³ëµåÀÓÀ¸·Î iniÆÄÀÏ ÀÚü¸¦ Áö¿ò { tx = pnode->Text ; DeleteFile(dir + KL + tx +".ini"); DeleteFile(dir + EL + tx +".ini"); DeleteFile(dir + IL + tx +".ini"); DeleteFile(dir + CL + tx +".ini"); DeleteFile(dir + JL + tx +".ini"); /////// ´Ù½Ã Àоîµé¸² //////// // TreeView1->Items->Clear(); // Init(); // STListBox->Items->SetText(""); ////////////////////////////// } TreeView1->Items->Clear(); Init(); // STListBox->Items->SetText(""); STListBox->Items->Clear(); } //-------------------------------------------------------------------------- void __fastcall TSewingForm::EditSecClick(TObject *Sender) { TTreeNode *node1 ; node1 = pnode->Parent; if( node1 != NULL) // ™DÅõȳëµå°¡ Section ³ëµåÀ϶§¸¸ ¼öÁ¤°¡´É { TAForm *AddForm; AnsiString sn , tn ; sn = pnode->Text ; AddForm = new TAForm(this); AddForm->SecEdit->Text = sn; AddForm->SecEdit->ReadOnly = true; int cnt ; tn = pnode->Parent->Text ; TIniFile *TermIni_k; // Korea TermIni_k = new TIniFile(dir + KL + tn + ".ini" ); cnt = TermIni_k->ReadInteger( sn, "Count" , cnt ); for( int i = 0 ; i < cnt ; i++) { AddForm->Memo1->Lines->Add( TermIni_k->ReadString(sn,IntToStr(i),"") ) ; } if ((AddForm->ShowModal()) == mrOk) { // AType = T_Section ; AType = T_EditSection ; AddSections(AddForm) ; } delete TermIni_k; } } //--------------------------------------------------------------------------- void __fastcall TSewingForm::sbOKClick(TObject *Sender) { if (!FindText()) ModalResult = mrCancel; } //--------------------------------------------------------------------------- bool __fastcall TSewingForm::FindText() { int i, cnt; AnsiString subitem, str, subdir; TIniFile *TermIni ; ktext = etext = itext = ctext = jtext = ""; if (STListBox->ItemIndex < 0) return false; // ¾Æ¹«°Íµµ ¼±ÅõǾîÁø °ÍÀÌ ¾ø´Â°æ¿ì... ktext = STListBox->Items->Strings[STListBox->ItemIndex]; if (ktext.Length() == 0) { ShowMessage("Text is null!"); return false; } // subdir = dir + "\\Korean"; // TermIni = new TIniFile(subdir + "\\" + filename); TermIni = new TIniFile(dir + KL + filename); if (TermIni) { cnt = TermIni->ReadInteger(section, "Count", 0); for (i=0; iReadString(section, IntToStr(i), ""); if (ktext.AnsiCompare(str) == 0) break; } if (i >= cnt) { ShowMessage("Can't find!"); delete TermIni; return false; } delete TermIni; } // subdir = dir + "\\English"; // TermIni = new TIniFile(subdir + "\\" + filename); TermIni = new TIniFile(dir + EL + filename); if (TermIni) { etext = TermIni->ReadString(section, IntToStr(i), ""); delete TermIni; } // subdir = dir + "\\Indonesia"; // TermIni = new TIniFile(subdir + "\\" + filename); TermIni = new TIniFile(dir + IL + filename); if (TermIni) { itext = TermIni->ReadString(section, IntToStr(i), ""); delete TermIni; } // subdir = dir + "\\Chinese"; // TermIni = new TIniFile(subdir + "\\" + filename); TermIni = new TIniFile(dir + CL + filename); if (TermIni) { ctext = TermIni->ReadString(section, IntToStr(i), ""); delete TermIni; } // subdir = dir + "\\Japanese"; // TermIni = new TIniFile(subdir + "\\" + filename); TermIni = new TIniFile(dir + JL + filename); if (TermIni) { jtext = TermIni->ReadString(section, IntToStr(i), ""); delete TermIni; } return true; } //--------------------------------------------------------------------------- void __fastcall TSewingForm::TreeView1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { AddTerm->Enabled = true; if (pnode) { Delete->Enabled = true; if (pnode->Parent) { AddSection->Enabled = false; EditSec->Enabled = true; } else { AddSection->Enabled = true; EditSec->Enabled = false; } } else { AddSection->Enabled = false; Delete->Enabled = false; EditSec->Enabled = false; } } //--------------------------------------------------------------------------- void __fastcall TSewingForm::GetText(AnsiString &kt, AnsiString &et, AnsiString &it, AnsiString &ct, AnsiString &jt) { kt = ktext; et = etext; it = itext; ct = ctext; jt = jtext; } //---------------------------------------------------------------------------