📄 mainunit.cpp
字号:
}
else
FindDialog->Execute();
}
//---------------------------------------------------------------------------
//替换找到的文本
void __fastcall TMainForm::ReplaceMenuItemClick(TObject *Sender)
{
ReplaceDialog->Execute();
}
//---------------------------------------------------------------------------
//删除汉字间的空格
void __fastcall TMainForm::DelSpaceMenuItemClick(TObject *Sender)
{
int i,Size;
char *OldBuf,*NewBuf,*TempOldBuf,*TempNewBuf;
Size=RichEdit->SelLength+1;
OldBuf=new char[Size];
NewBuf=new char[Size];
TempOldBuf=OldBuf;
TempNewBuf=NewBuf;
try
{
RichEdit->GetSelTextBuf(OldBuf,Size);
for(i=0;i<Size;i++)
{
if((*TempOldBuf==' ')&&(*(TempOldBuf-1)<0))
{
TempOldBuf++;
}
else
*(TempNewBuf++)=*(TempOldBuf++);
}
*TempNewBuf=NULL;
RichEdit->SetSelTextBuf(NewBuf);
}
__finally
{
delete OldBuf;
delete NewBuf;
}
}
//---------------------------------------------------------------------------
//合并段落
void __fastcall TMainForm::CoalitionMenuItemClick(TObject *Sender)
{
int i,Size;
char *OldBuf,*NewBuf,*TempOldBuf,*TempNewBuf;
Size=RichEdit->SelLength+1;
OldBuf=new char[Size];
NewBuf=new char[Size];
TempOldBuf=OldBuf;
TempNewBuf=NewBuf;
try
{
RichEdit->GetSelTextBuf(OldBuf,Size);
for(i=0;i<Size;i++)
{
if((*TempOldBuf==0X0A)||(*TempOldBuf==0X0D))
{
TempOldBuf++;
}
else
*(TempNewBuf++)=*(TempOldBuf++);
}
*TempNewBuf=NULL;
RichEdit->SetSelTextBuf(NewBuf);
}
__finally
{
delete OldBuf;
delete NewBuf;
}
}
//---------------------------------------------------------------------------
//分割段落
void __fastcall TMainForm::SplitMenuItemClick(TObject *Sender)
{
int i,Size;
bool Zi;
char *OldBuf,*NewBuf,*TempOldBuf,*TempNewBuf;
Size=RichEdit->SelLength+1;
OldBuf=new char[Size];
NewBuf=new char[Size+(Size/LineCount)*2+50];
TempOldBuf=OldBuf;
TempNewBuf=NewBuf;
try
{
RichEdit->GetSelTextBuf(OldBuf,Size);
i=0;
Zi=true;
while(*TempOldBuf)
{
if(*TempOldBuf<0)
Zi=! Zi;
else
Zi=true;
*(TempNewBuf++)=*(TempOldBuf++);
i++;
if((i>LineCount) && (Zi))
{
i=0;
*(TempNewBuf++)=0x0D;
*(TempNewBuf++)=0x0A;
}
}
*TempNewBuf=NULL;
RichEdit->SetSelTextBuf(NewBuf);
}
__finally
{
delete OldBuf;
delete NewBuf;
}
}
//---------------------------------------------------------------------------
//隐藏或显示工具栏
void __fastcall TMainForm::ToolsMenuItemClick(TObject *Sender)
{
ToolBar->Visible=!(ToolBar->Visible);
ToolsMenuItem->Checked=ToolBar->Visible;
}
//---------------------------------------------------------------------------
//隐藏或显示状态栏
void __fastcall TMainForm::StatusMenuItemClick(TObject *Sender)
{
StatusBar->Visible=!(StatusBar->Visible);
StatusMenuItem->Checked=StatusBar->Visible;
}
//---------------------------------------------------------------------------
//字体放大
void __fastcall TMainForm::BigFontMenuItemClick(TObject *Sender)
{
RichEdit->Font->Size+=1;
}
//---------------------------------------------------------------------------
//字体缩小
void __fastcall TMainForm::SmallFontMenuItemClick(TObject *Sender)
{
RichEdit->Font->Size-=1;
}
//---------------------------------------------------------------------------
//定制选项
void __fastcall TMainForm::OptionsMenuItemClick(TObject *Sender)
{
OptionForm=new TOptionForm(Application);
OptionForm->ToolCheckBox->Checked=ToolsMenuItem->Checked;
OptionForm->StatusCheckBox->Checked=StatusMenuItem->Checked;
OptionForm->LineCountEdit->Text=AnsiString(LineCount+3);
OptionForm->TreeFontSizeUpDown->Position=TreeView->Font->Size;
if(OptionForm->ShowModal()==mrOk)
{
ToolsMenuItem->Checked=OptionForm->ToolCheckBox->Checked;
ToolBar->Visible=ToolsMenuItem->Checked;
StatusMenuItem->Checked=OptionForm->StatusCheckBox->Checked;
StatusBar->Visible=StatusMenuItem->Checked;
LineCount=OptionForm->LineCountEdit->Text.ToInt()-3;
TreeView->Font->Size=OptionForm->TreeFontSizeEdit->Text.ToInt();
}
delete OptionForm;
}
//---------------------------------------------------------------------------
//加新标题
void __fastcall TMainForm::AddNodeMenuItemClick(TObject *Sender)
{
TTreeNode *TempNode;
TempNode=TreeView->Items->Insert(TreeView->Selected,"新建标题");
TempNode->ImageIndex=-1;
TreeView->Selected=TempNode;
StatusBar->Panels->Items[3]->Text=AnsiString("总记录数:")+TreeView->Items->Count;
TempNode->EditText();
}
//---------------------------------------------------------------------------
//加新子标题
void __fastcall TMainForm::AddSubNodeMenuItemClick(TObject *Sender)
{
TTreeNode *TempNode;
TempNode=TreeView->Items->AddChild(TreeView->Selected,"新建子标题");
TempNode->ImageIndex=-1;
TreeView->Selected->Expand(true);
TreeView->Selected=TempNode;
StatusBar->Panels->Items[3]->Text=AnsiString("总记录数:")+TreeView->Items->Count;
TempNode->EditText();
}
//---------------------------------------------------------------------------
//隐藏/显示标题栏
void __fastcall TMainForm::EditNodeMenuItemClick(TObject *Sender)
{
TreeView->Selected->EditText();
}
//---------------------------------------------------------------------------
//删除标题
void __fastcall TMainForm::DelNodeMenuItemClick(TObject *Sender)
{
if(TreeView->Selected->getFirstChild())
if(Application->MessageBox("是否删除该标题下的所有标题?","电子书库",
MB_ICONWARNING+MB_OKCANCEL)==IDCANCEL)
return;
TreeView->Selected->Delete();
IndexChanged=true;
StatusBar->Panels->Items[3]->Text=AnsiString("总记录数:")+TreeView->Items->Count;
}
//---------------------------------------------------------------------------
//展开当前标题
void __fastcall TMainForm::ExtNodeMenuItemClick(TObject *Sender)
{
TreeView->Selected->Expand(true);
}
//---------------------------------------------------------------------------
//展开所有标题
void __fastcall TMainForm::ExtAllNodeMenuItemClick(TObject *Sender)
{
TreeView->FullExpand();
}
//---------------------------------------------------------------------------
//合并当前标题
void __fastcall TMainForm::CoalitionNodeMenuItemClick(TObject *Sender)
{
TreeView->Selected->Collapse(true);
}
//---------------------------------------------------------------------------
//合并所有标题
void __fastcall TMainForm::CoalitionAllNodeMenuItemClick(TObject *Sender)
{
TreeView->FullCollapse();
}
//---------------------------------------------------------------------------
//压缩数据库
void __fastcall TMainForm::CompressMenuItemClick(TObject *Sender)
{
CompressDatabase();
}
//---------------------------------------------------------------------------
//数据库存盘
void __fastcall TMainForm::SaveMenuItemClick(TObject *Sender)
{
if(RichEdit->Modified)
SaveContentToFile();
if(IndexChanged)
SaveIndexToFile();
}
//---------------------------------------------------------------------------
//把整个数据库导出成HTML
void __fastcall TMainForm::HtmlMenuItemClick(TObject *Sender)
{
//留待下一版本再加此功能
}
//---------------------------------------------------------------------------
//在线帮助
void __fastcall TMainForm::ReadmeMenuItemClick(TObject *Sender)
{
if(hhctrl) //如果支持HTML帮助则调用HTML帮助
HtmlHelp(0,GetFileName("chm"),0,0);
else //不支持HTML帮助则调用普通HELP帮助
WinHelp(Application->Handle,GetFileName("hlp"),HELP_CONTEXT,10);
}
//---------------------------------------------------------------------------
//关于本软件的一些信息
void __fastcall TMainForm::AboutMenuItemClick(TObject *Sender)
{
AboutBox=new TAboutBox(MainForm);
AboutBox->ShowModal(); //显示版权信息窗口
AboutBox->Free();
}
//---------------------------------------------------------------------------
//显示帮助文件中的索易中文软件联盟的一些信息
void __fastcall TMainForm::OrtherMenuItemClick(TObject *Sender)
{
char Buf[256];
if(hhctrl)
{
strcpy(Buf,GetFileName("chm"));
strcat(Buf,"::book6.htm");
HtmlHelp(0,Buf,0,0);
}
else
WinHelp(Application->Handle,GetFileName("hlp"),HELP_CONTEXT,60);
}
//---------------------------------------------------------------------------
//开始拖动树形视图标题时
void __fastcall TMainForm::TreeViewStartDrag(TObject *Sender,
TDragObject *&DragObject)
{
TreeView->BeginDrag(true); //允许拖动
}
//---------------------------------------------------------------------------
//结束拖动树形视图标题前
void __fastcall TMainForm::TreeViewEndDrag(TObject *Sender,
TObject *Target, int X, int Y)
{
POINT pxy;
TTreeNode *SourceNode,*DestinNode;
SourceNode=TreeView->Selected; //得被拖动的标题
GetCursorPos(&pxy); //取MOUSE位置
::ScreenToClient(TreeView->Handle,&pxy); //转换成TREEVIEW相对坐标
DestinNode=TreeView->GetNodeAt(pxy.x,pxy.y); //得坐标处标题
if(DestinNode && DestinNode!=SourceNode)
SourceNode->MoveTo(DestinNode,naInsert); //移被拖动标题到相应位置
TreeView->EndDrag(true); //结束拖动
IndexChanged=true; //置索引改变为真
}
//---------------------------------------------------------------------------
//树形标题拖动时
void __fastcall TMainForm::TreeViewDragOver(TObject *Sender,
TObject *Source, int X, int Y, TDragState State, bool &Accept)
{
Accept=true; //返回真值以允许拖动
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::TitleMenuItemClick(TObject *Sender)
{
TitleMenuItem->Checked=!TitleMenuItem->Checked;
LeftPanelToolButton->Down=TitleMenuItem->Checked;
Splitter->Visible=TitleMenuItem->Checked;
LeftPanel->Visible=TitleMenuItem->Checked;
}
//---------------------------------------------------------------------------
//只读功能
void __fastcall TMainForm::ReadOnlyMenuItemClick(TObject *Sender)
{
ReadOnlyMenuItem->Checked=!ReadOnlyMenuItem->Checked;
ReadOnlyToolButton->Down=ReadOnlyMenuItem->Checked;
RichEdit->ReadOnly=ReadOnlyMenuItem->Checked;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -