//--------------------------------------------------------------------------- #include #include #include #pragma hdrstop #include "SimpleAPTable_F.h" #include "MainImage.h" #include "Weaving_F.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TSimpleAPTableForm *SimpleAPTableForm; //--------------------------------------------------------------------------- __fastcall TSimpleAPTableForm::TSimpleAPTableForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::FormCreate(TObject *Sender) { APTableView = true; SetSmallFont(Font); // DirectoryListBox->Directory = DirectoryTreatment; Data = new TList; } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::FormDestroy(TObject *Sender) { WeavingForm->sbView->Enabled = true; TIniFile *IniFile = new TIniFile(DirectoryItem + "\\Main.ini"); if (IniFile) { IniFile->WriteString("SimpleAPTable", "DirectoryName", DirectoryListBox->Directory); delete IniFile; } ExitData(); delete Data; } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::InitForm() { InitData(); } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::InitData() { TFileInfor *fi; HANDLE hFile = INVALID_HANDLE_VALUE; int ec; TTexVersion ver; if (Data) { ExitData(); for (int i=0; iItems->Count; i++) { fi = new TFileInfor; fi->Name = FileListBox->Items->Strings[i]; fi->Bitmap = new Graphics::TBitmap; if ((hFile = CreateFile(fi->Name.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) goto next; if (!LoadFromTexpiaTag(hFile, fi, &ver)) goto next; CloseHandle(hFile); Data->Add(fi); continue; next: if (hFile!=INVALID_HANDLE_VALUE) CloseHandle(hFile); if (fi) delete fi; } if (Data->Count>0) { DrawGrid->RowCount = ((Data->Count -1)/DrawGrid->ColCount)+1; } else { DrawGrid->RowCount = 0; } DrawGrid->Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::ExitData() { TFileInfor *fi; if (Data) { while (Data->Count>0) { fi = (TFileInfor *)Data->Last(); Data->Remove(fi); delete fi; } } } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::DrawGridDrawCell(TObject *Sender, int Col, int Row, TRect &Rect, TGridDrawState State) { int n; TFileInfor *fi; TRect r; APTableView = true; //2001.3.28 lhskys a,s È®´ë Ãà¼Ò¸¦ À§Çؼ­... n = Row * DrawGrid->ColCount + Col; if (n < Data->Count) { fi = (TFileInfor *) Data->Items[n]; if (Col == DrawGrid->Col && Row==DrawGrid->Row) FileName = fi->Name; StretchBlt(DrawGrid->Canvas->Handle,Rect.Left+10,Rect.Top+5,80,100, fi->Bitmap->Canvas->Handle,0,0,int(80/((StrToInt(txtZoom->Text)+2)/3.0)), int(100/((StrToInt(txtZoom->Text)+2)/3.0)),SRCCOPY); r.Left = Rect.Left+5; r.Top = Rect.Top+110; r.Right = Rect.Left+85; r.Bottom = Rect.Top + 110 + DrawGrid->Canvas->TextHeight(fi->Name); DrawGrid->Canvas->TextRect(r, Rect.Left+5, Rect.Top+110, fi->Name); } } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::DirectoryListBoxChange(TObject *Sender) { InitData(); DrawGrid->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::sbZoomClick(TObject *Sender) { int i; i = StrToInt(txtZoom->Text); i++; txtZoom->Text = IntToStr(i); } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::txtZoomChange(TObject *Sender) { DrawGrid->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::sbZoomOutClick(TObject *Sender) { int i; i = StrToInt(txtZoom->Text); if(i <2) i =1; else i--; txtZoom->Text = IntToStr(i); } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::FormClose(TObject *Sender, TCloseAction &Action) { APTableView = false; } //--------------------------------------------------------------------------- void __fastcall TSimpleAPTableForm::DrawGridDblClick(TObject *Sender) { int n = DrawGrid->ColCount * DrawGrid->Row + DrawGrid->Col; if (n >= FileListBox->Items->Count) return; AnsiString fn = FileListBox->Items->Strings[n]; fn = DirectoryListBox->Directory + "\\" + fn; WeavingForm->InsertImage(fn); Close(); } //---------------------------------------------------------------------------