//--------------------------------------------------------------------------- #include #pragma hdrstop #include #include "ImageExpression.h" #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "TPStretchImage" #pragma link "cdiroutl" #pragma resource "*.dfm" TMakeTitleForm *MakeTitleForm; //--------------------------------------------------------------------------- __fastcall TMakeTitleForm::TMakeTitleForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::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; ViewExpression(); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::DriveComboBox1Change(TObject *Sender) { FList->Drive = DriveComboBox1->Drive; DirectoryListBox1->Drive = FList->Drive; FList->Directory = DirectoryListBox1->Directory; } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::Splitter1Moved(TObject *Sender) { DriveComboBox1->Width = Panel1->Width - 4; DirectoryListBox1->Width = Panel1->Width - 4; FList->Width = Panel1->Width - 4; Memo1->Width = Panel1->Width - 4; Panel1->Repaint(); DriveComboBox1->Repaint(); DirectoryListBox1->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::sbOKClick(TObject *Sender) { int index, cnt; AnsiString dir,dir1, fn, title; TIniFile *TExpressionIni; TRegistry *Registry; cnt = FList->Items->Count; index = sgExp->Row*sgExp->ColCount + sgExp->Col; if (index < cnt) { dir = DirectoryListBox1->Directory; fn = FList->Items->Strings[index]; title = Edit1->Text; #ifdef KIDO TExpressionIni = new TIniFile("C:\\Kido\\Report\\Expression.ini"); #else Registry = new TRegistry; if (!Registry) return; Registry->RootKey = HKEY_CURRENT_USER; Registry->OpenKey("SOFTWARE\\Youngwoo\\TexWork",TRUE); dir1 = Registry->ReadString("Path"); delete Registry; TExpressionIni = new TIniFile(dir1 + "\\Program\\Expression.ini"); #endif if (title.Length() > 0) TExpressionIni->WriteString(dir, fn, title); else TExpressionIni->DeleteKey(dir, fn); delete TExpressionIni; sgExp->Repaint(); ViewExpression(); } Edit1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == VK_RETURN) { sbOKClick(NULL); } } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::ReadTitle(AnsiString dir, AnsiString fn) { TIniFile *TExpressionIni; TRegistry *Registry; AnsiString dir1; #ifdef KIDO TExpressionIni = new TIniFile("C:\\Kido\\Report\\Expression.ini"); #else Registry = new TRegistry; if (!Registry) return; Registry->RootKey = HKEY_CURRENT_USER; Registry->OpenKey("SOFTWARE\\Youngwoo\\TexWork",TRUE); dir1 = Registry->ReadString("Path"); delete Registry; TExpressionIni = new TIniFile(dir1 + "\\Program\\Expression.ini"); #endif Edit1->Text = TExpressionIni->ReadString(dir, fn, ""); delete TExpressionIni; } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::sbExitClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::DirectoryListBox1Change(TObject *Sender) { int i, j, k, cnt; AnsiString dir, fn, lfn, exp; dir = DirectoryListBox1->Directory; cnt = FList->Items->Count; sgExp->RowCount = cnt/sgExp->ColCount + 1; DirLabel->Caption = dir; sgExp->Repaint(); ViewExpression(); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::sgExpDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { int i, cnt, index, ww, hh, sx, sy, rvalue = 0; double rx, ry, r; AnsiString dir, dir1, fn, exp, ffn; TIniFile *TExpressionIni; TTexpiaBitmap *tmp; HDC shDC; TRegistry *Registry; dir = DirectoryListBox1->Directory; cnt = FList->Items->Count; index = sgExp->ColCount*ARow + ACol; if (cnt > 0) { if (index < cnt) { if (FileExists(FList->Items->Strings[index])) { #ifdef KIDO TExpressionIni = new TIniFile("C:\\Kido\\Report\\Expression.ini"); #else Registry = new TRegistry; if (!Registry) return; Registry->RootKey = HKEY_CURRENT_USER; Registry->OpenKey("SOFTWARE\\Youngwoo\\TexWork",TRUE); dir1 = Registry->ReadString("Path"); delete Registry; TExpressionIni = new TIniFile(dir1 + "\\Program\\Expression.ini"); #endif fn = FList->Items->Strings[index]; exp = TExpressionIni->ReadString(dir, fn, ""); char *str = dir.c_str(); if(str[dir.Length() - 1] == '\\') ffn = dir + fn; else ffn = dir + "\\" + fn; tmp = new TTexpiaBitmap; if (!MainForm->LoadImage(ffn, tmp)) goto fail; ww = Rect.Right - Rect.Left; hh = Rect.Bottom - Rect.Top - 40; rx = (double)ww / tmp->Width; ry = (double)hh / tmp->Height; r = rx < ry ? rx : ry; sx = Rect.Left; sy = Rect.Top; shDC = tmp->CreateDC(); if (r < 1.0) { if (ww > tmp->Width*r) sx += (ww - tmp->Width*r)/2; if (hh > tmp->Height*r) sy += (hh - tmp->Height*r)/2; SetStretchBltMode(sgExp->Canvas->Handle, COLORONCOLOR); rvalue = StretchBlt(sgExp->Canvas->Handle, sx, sy, tmp->Width*r, tmp->Height*r, shDC, 0, 0, tmp->Width, tmp->Height, SRCCOPY); if (rvalue == 0) ShowMessage("Fail"); } else { BitBlt(sgExp->Canvas->Handle, sx+(ww-tmp->Width)/2, sy+(hh-tmp->Height)/2, tmp->Width, tmp->Height, shDC, 0, 0, SRCCOPY); } tmp->DeleteDC(shDC); SetTextAlign(sgExp->Canvas->Handle, TA_CENTER); sgExp->Canvas->Font->Size = 10; sgExp->Canvas->TextRect(TRect(Rect.Left, Rect.Bottom-40, Rect.Right, Rect.Bottom-20), (Rect.Left+Rect.Right)/2, Rect.Bottom-38, exp); sgExp->Canvas->TextRect(TRect(Rect.Left, Rect.Bottom-20, Rect.Right, Rect.Bottom), (Rect.Left+Rect.Right)/2, Rect.Bottom-18, fn); delete tmp; return; } else { ShowMessage("File doesn't exist!"); } } } return; fail: if (tmp) delete tmp; ShowMessage("LoadImage Fail"); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::sgExpDblClick(TObject *Sender) { int index, cnt; AnsiString dir, fn, ffn; dir = DirectoryListBox1->Directory; index = sgExp->ColCount*sgExp->Row + sgExp->Col; cnt = FList->Items->Count -1; if (index > cnt) return; fn = FList->Items->Strings[index]; //ffn = dir + "\\" + fn; char *str = dir.c_str(); if(str[dir.Length() - 1] == '\\') ffn = dir + fn; else ffn = dir + "\\" + fn; DirLabel->Caption = ffn; ReadTitle(dir, fn); Edit1->Enabled = true; Edit1->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::Panel1Resize(TObject *Sender) { int hh; hh = DirectoryListBox1->Top + DirectoryListBox1->Height + 10; if (Panel1->Height < hh) { if (Panel1->Height > (DirectoryListBox1->Top+30)) { DirectoryListBox1->Height = Panel1->Height - DirectoryListBox1->Top - 10; DirectoryListBox1->Repaint(); } } else { if (DirectoryListBox1->Height < 250) { DirectoryListBox1->Height = Panel1->Height - DirectoryListBox1->Top - 10; } } } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::Add1Click(TObject *Sender) { // } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::Delete1Click(TObject *Sender) { // } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::Rename1Click(TObject *Sender) { // } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::DeleteExpression1Click(TObject *Sender) { int index, cnt; AnsiString fn, dir, dir1; TIniFile *TExpressionIni; TRegistry *Registry; index = sgExp->ColCount*sgExp->Row + sgExp->Col; cnt = FList->Items->Count - 1; if (index > cnt) return; fn = FList->Items->Strings[index]; dir = DirectoryListBox1->Directory; #ifdef KIDO TExpressionIni = new TIniFile("C:\\Kido\\Report\\Expression.ini"); #else Registry = new TRegistry; if (!Registry) return; Registry->RootKey = HKEY_CURRENT_USER; Registry->OpenKey("SOFTWARE\\Youngwoo\\TexWork",TRUE); dir1 = Registry->ReadString("Path"); delete Registry; TExpressionIni = new TIniFile(dir1 + "\\Program\\Expression.ini"); #endif TExpressionIni->DeleteKey(dir, fn); delete TExpressionIni; ViewExpression(); } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::ViewExpression() { AnsiString dir, dir1; TIniFile *TExpressionIni; TRegistry *Registry; Memo1->Clear(); dir = DirectoryListBox1->Directory; #ifdef KIDO TExpressionIni = new TIniFile("C:\\Kido\\Report\\Expression.ini"); #else Registry = new TRegistry; if (!Registry) return; Registry->RootKey = HKEY_CURRENT_USER; Registry->OpenKey("SOFTWARE\\Youngwoo\\TexWork",TRUE); dir1 = Registry->ReadString("Path"); delete Registry; TExpressionIni = new TIniFile(dir1 + "\\Program\\Expression.ini"); #endif TExpressionIni->ReadSectionValues(dir, Memo1->Lines); delete TExpressionIni; } //--------------------------------------------------------------------------- void __fastcall TMakeTitleForm::sgExpClick(TObject *Sender) { Edit1->Enabled = false; } //---------------------------------------------------------------------------