//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
 if(CurrentPage<PagesCount)
 {
  CurrentPage++;
  CP->Caption=IntToStr(CurrentPage);
  SpeedButton3Click(NULL);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
 if(CurrentPage>1)
 {
  CurrentPage--;
  CP->Caption=IntToStr(CurrentPage);
  SpeedButton3Click(NULL);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
 AnsiString cd;
 FILE *f;
 int i;
 dword curpos;
 if(OpenDialog->Execute())
 {
  cd=GetCurrentDir()+"\\";
  default_txt=
   OpenDialog->FileName.SubString(cd.Length()+1,OpenDialog->FileName.Length()-cd.Length());
  Timer->Enabled=true;
  f=fopen(OpenDialog->FileName.c_str(),"rb+");
  Log->Clear();
  //Заголовок
  Log->Lines->Add("Чтение заголовка...");
  fread(BookHeader,sizeof(BookHeader),1,f);
  Title->Text="";
  for(i=0;i<64;i++)Title->Text=Title->Text+(char)BookHeader[i];
  Author->Text="";
  for(i=64;i<224;i++)Author->Text=Author->Text+(char)BookHeader[i];
  //Количество страниц
  Log->Lines->Add("Чтение количества страниц...");
  fread(&PagesCount,sizeof(PagesCount),1,f);
  CurrentPage=1;
  PC->Caption=IntToStr(PagesCount);
  CP->Caption=IntToStr(CurrentPage);
  PCMax->Value=PagesCount;
  //Адреса страниц
  Log->Lines->Add("Чтение адресов страниц...");
  fread(PageAddress,sizeof(dword)*PagesCount,1,f);
  curpos=ftell(f);
  fseek(f,0,SEEK_END);
  PageAddress[PagesCount]=ftell(f);
  fseek(f,curpos,SEEK_SET);
  //Размер страниц
  Log->Lines->Add("Подсчет размеров страниц...");
  for(i=0;i<PagesCount;i++)PageSize[i]=PageAddress[i+1]-PageAddress[i];
  //Страницы
  Log->Lines->Add("Чтение содержимого страниц...");
  for(i=0;i<PagesCount;i++)
  {
   fseek(f,PageAddress[i],SEEK_SET);
   fread(Page[i],sizeof(byte)*PageSize[i],1,f);
   Application->ProcessMessages();
  }
  Log->Lines->Add("Чтение документа "+OpenDialog->FileName+" завершено.");
  Form1->Caption="TES: Daggerfall Book Editor { "+OpenDialog->FileName+" }";
  Timer->Enabled=false;
  fclose(f);
  SpeedButton3Click(NULL);
  SaveDialog->FileName=OpenDialog->FileName;
  Form1->Caption="TES2:Daggerfall Books-files Editor { "+default_txt+" }";
  Application->Title="{ "+default_txt+" }";
 }
}
Ejemplo n.º 4
0
void __fastcall TfrmRaporMenu::FormCreate(TObject *Sender)
{
    SpeedButton3Click(Sender);    
}