refermain.cpp

来自「《C++ Builder 5技术内幕》一书附带的程序源代码」· C++ 代码 · 共 1,492 行 · 第 1/5 页

CPP
1,492
字号
//  {
//    Set< TMsgDlgBtn, 0, 8 > setButtons;
//    setButtons << mbYes << mbNo << mbCancel;
//    switch( MessageDlg( const_cast< char * >MI_SAVECHANGE, mtConfirmation, setButtons, 0 ) )
//    {
//      case mrCancel:
//        return;
//      case mrYes:
// Save it!
//      case mrNo:
//    }
//    int nButton = Application->MessageBox(
//        AnsiString( const_cast< char * >( MI_SAVECHANGE ) ).c_str(),
//        const_cast< char * >( MT_WARNING ),
//        MB_YESNOCANCEL + MB_DEFBUTTON1 + MB_ICONINFORMATION );
//    if( nButton == IDCANCEL )
//      return;
//    if( nButton == IDYES )
//    {
//  Save it!
//    }
//  }
  if( !m_bSearched )
//  Get the first reference record.
  {
    m_nWorkingReferRec = 1;
//  copy the current working reference record to workspace.
    CopyToWorkspace( m_prlReferList, m_nWorkingReferRec );
//  Show it.
    ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
    ToolButtonFirst->Enabled = false;
    MenuItemRecordFirst->Enabled = false;
    ToolButtonPrevious->Enabled = false;
    MenuItemRecordPrevious->Enabled = false;
    if( m_prlReferList->Count > 1 )
    {
      ToolButtonNext->Enabled = true;
      MenuItemRecordNext->Enabled = true;
      ToolButtonLast->Enabled = true;
      MenuItemRecordLast->Enabled = true;
    }
    else
    {
      ToolButtonNext->Enabled = false;
      MenuItemRecordNext->Enabled = false;
      ToolButtonLast->Enabled = false;
      MenuItemRecordLast->Enabled = false;
    }
// Show in status bar.
    StatusBar->Panels->Items[1]->Text = AnsiString( "Active: 1" );
  }
  else
  {
    m_nSearchedReferRec = 1;
//  copy the current working reference record to workspace.
    CopyToWorkspace( m_prlSearchedReferList, m_nSearchedReferRec );
//  Show it.
    ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
    ToolButtonFirst->Enabled = false;
    MenuItemRecordFirst->Enabled = false;
    ToolButtonPrevious->Enabled = false;
    MenuItemRecordPrevious->Enabled = false;
    if( m_prlSearchedReferList->Count > 1 )
    {
      ToolButtonNext->Enabled = true;
      MenuItemRecordNext->Enabled = true;
      ToolButtonLast->Enabled = true;
      MenuItemRecordLast->Enabled = true;
    }
    else
    {
      ToolButtonNext->Enabled = false;
      MenuItemRecordNext->Enabled = false;
      ToolButtonLast->Enabled = false;
      MenuItemRecordLast->Enabled = false;
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::ToolButtonLastClick(TObject *Sender)
{
//  Get the last reference record.
  if( !m_bSearched )
  {
    m_nWorkingReferRec = m_prlReferList->Count;
    if( m_nWorkingReferRec > 1 )
    {
//  copy the current working reference record to workspace.
      CopyToWorkspace( m_prlReferList, m_nWorkingReferRec );
//  Show it.
      ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
      ToolButtonLast->Enabled = false;
      MenuItemRecordLast->Enabled = false;
      ToolButtonNext->Enabled = false;
      MenuItemRecordNext->Enabled = false;
      ToolButtonFirst->Enabled = true;
      MenuItemRecordFirst->Enabled = true;
      ToolButtonPrevious->Enabled = true;
      MenuItemRecordPrevious->Enabled = true;
    }
  }
  else
  {
    m_nSearchedReferRec = m_prlSearchedReferList->Count;
    if( m_nSearchedReferRec > 1 )
    {
//  copy the current working reference record to workspace.
      CopyToWorkspace( m_prlSearchedReferList, m_nSearchedReferRec );
//  Show it.
      ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
      ToolButtonLast->Enabled = false;
      MenuItemRecordLast->Enabled = false;
      ToolButtonNext->Enabled = false;
      MenuItemRecordNext->Enabled = false;
      ToolButtonFirst->Enabled = true;
      MenuItemRecordFirst->Enabled = true;
      ToolButtonPrevious->Enabled = true;
      MenuItemRecordPrevious->Enabled = true;
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::ToolButtonPreviousClick(TObject *Sender)
{
  if( !m_bSearched )  //  Show reference records.
//  Get the previous reference record.
  {
    if( m_nWorkingReferRec > 1 )
    {
      m_nWorkingReferRec -= 1;
//  copy the current working reference record to workspace.
      CopyToWorkspace( m_prlReferList, m_nWorkingReferRec );
//  Show it.
      ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
      ToolButtonNext->Enabled = true;
      MenuItemRecordNext->Enabled = true;
      ToolButtonLast->Enabled = true;
      MenuItemRecordLast->Enabled = true;
      if( m_nWorkingReferRec == 1 )
      {
        ToolButtonFirst->Enabled = false;
        MenuItemRecordFirst->Enabled = false;
        ToolButtonPrevious->Enabled = false;
        MenuItemRecordPrevious->Enabled = false;
      }
    }
  }
  else  //  Show searched reference records.
  {
    if( m_nSearchedReferRec > 1 )
    {
      m_nSearchedReferRec -= 1;
//  copy the current working reference record to workspace.
      CopyToWorkspace( m_prlSearchedReferList, m_nSearchedReferRec );
//  Show it.
      ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
      ToolButtonNext->Enabled = true;
      MenuItemRecordNext->Enabled = true;
      ToolButtonLast->Enabled = true;
      MenuItemRecordLast->Enabled = true;
      if( m_nSearchedReferRec == 1 )
      {
        ToolButtonFirst->Enabled = false;
        MenuItemRecordFirst->Enabled = false;
        ToolButtonPrevious->Enabled = false;
        MenuItemRecordPrevious->Enabled = false;
      }
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::ToolButtonNextClick(TObject *Sender)
{
//  Get the next reference record.
  if( !m_bSearched )
  {
    if( m_nWorkingReferRec < m_prlReferList->Count )
    {
      m_nWorkingReferRec += 1;
//  copy the current working reference record to workspace.
      CopyToWorkspace( m_prlReferList, m_nWorkingReferRec );
//  Show it.
      ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
      ToolButtonFirst->Enabled = true;
      MenuItemRecordFirst->Enabled = true;
      ToolButtonPrevious->Enabled = true;
      MenuItemRecordPrevious->Enabled = true;
      if( m_nWorkingReferRec == m_prlReferList->Count )
      {
        ToolButtonNext->Enabled = false;
        MenuItemRecordNext->Enabled = false;
        ToolButtonLast->Enabled = false;
        MenuItemRecordLast->Enabled = false;
      }
    }
  }
  else  //  Show searched reference records.
  {
    if( m_nSearchedReferRec < m_prlSearchedReferList->Count )
    {
      m_nSearchedReferRec += 1;
//  copy the current working reference record to workspace.
      CopyToWorkspace( m_prlSearchedReferList, m_nSearchedReferRec );
//  Show it.
      ShowWorkingReferRec();
//  Disable or enable buttons and menu items.
      ToolButtonFirst->Enabled = true;
      MenuItemRecordFirst->Enabled = true;
      ToolButtonPrevious->Enabled = true;
      MenuItemRecordPrevious->Enabled = true;
      if( m_nSearchedReferRec == m_prlSearchedReferList->Count )
      {
        ToolButtonNext->Enabled = false;
        MenuItemRecordNext->Enabled = false;
        ToolButtonLast->Enabled = false;
        MenuItemRecordLast->Enabled = false;
      }
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::MenuItemRecordFirstClick(TObject *Sender)
{
    ToolButtonFirstClick( this );
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::MenuItemRecordLastClick(TObject *Sender)
{
    ToolButtonLastClick( this );
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::MenuItemRecordPreviousClick(TObject *Sender)
{
    ToolButtonPreviousClick( this );
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::MenuItemRecordNextClick(TObject *Sender)
{
    ToolButtonNextClick( this );
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::EditIndexClick(TObject *Sender)
{
  EditIndex->SelectAll();
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::EditIndexEnter(TObject *Sender)
{
  EditIndex->SelectAll();
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::EditIndexExit(TObject *Sender)
{
  if( EditIndex->Modified )
  {
    EditIndex->Font->Color = clRed;
    m_bModified = true;
    m_rrWorkingReferRec.asCrossReferIndex = EditIndex->Text;
    unsigned __int8 nNewLength = ( unsigned __int8 )( EditIndex->Text.Length() );
    m_rrWorkingReferRec.nLength = m_rrWorkingReferRec.nLength
                                - m_rrWorkingReferRec.nCrossReferIndex
                                + nNewLength;
    m_rrWorkingReferRec.nCrossReferIndex = nNewLength;
  }
}
//---------------------------------------------------------------------------


void __fastcall TMainFormRefer::ComboBoxReferTypeClick(TObject *Sender)
{
  ComboBoxReferType->SelectAll();
}
//---------------------------------------------------------------------------

void __fastcall TMainFormRefer::ComboBoxReferTypeEnter(TObject *Sender)
{
  ComboBoxReferType->SelectAll();
}
//------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?