期末考试是用C++ builder开发个这个东西,多少看起来有点幼稚。不过BCB开发起来比较简单。这里只提供一些简单的代码用以交流。
先声明几个全局变量:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
退出按钮这样设计:
void __fastcall TMainForm::N10Click(TObject *Sender)
{
if(If_saved == FALSE)
{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click();
}
}
Application->Terminate();
}
{
if(If_saved == FALSE)
{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click();
}
}
Application->Terminate();
}
保存按钮是这样设计的:
void __fastcall TMainForm::N4Click(TObject *Sender)
{
if(If_saved==FALSE)
{
if(!SaveDialog1->Execute())
{
return;
}
UserFileName = SaveDialog1->FileName.c_str();
Memo1->Lines->SaveToFile(UserFileName);
If_saved=TRUE;
sprintf(title_buf, "%s - 记事本", UserFileName);
Caption=title_buf;
}else{
Memo1->Lines->SaveToFile(UserFileName);
}
}
{
if(If_saved==FALSE)
{
if(!SaveDialog1->Execute())
{
return;
}
UserFileName = SaveDialog1->FileName.c_str();
Memo1->Lines->SaveToFile(UserFileName);
If_saved=TRUE;
sprintf(title_buf, "%s - 记事本", UserFileName);
Caption=title_buf;
}else{
Memo1->Lines->SaveToFile(UserFileName);
}
}
打开按钮的设计:
void __fastcall TMainForm::N3Click(TObject *Sender)
{
if(If_saved == TRUE)
{ if(!OpenDialog1->Execute())
{
return;
}
UserFileName = OpenDialog1->FileName.c_str();
this->Memo1->Lines->LoadFromFile(UserFileName);
If_saved=TRUE;
sprintf(title_buf, "%s - 记事本", UserFileName);
Caption=title_buf;
}else{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click(NULL);
If_saved = TRUE;
N3Click(NULL);
}
}
}
{
if(If_saved == TRUE)
{ if(!OpenDialog1->Execute())
{
return;
}
UserFileName = OpenDialog1->FileName.c_str();
this->Memo1->Lines->LoadFromFile(UserFileName);
If_saved=TRUE;
sprintf(title_buf, "%s - 记事本", UserFileName);
Caption=title_buf;
}else{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click(NULL);
If_saved = TRUE;
N3Click(NULL);
}
}
}
新建按钮的设计:
void __fastcall TMainForm::N2Click(TObject *Sender)
{
if(If_saved == FALSE)
{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click();
}
}
this->Memo1->Lines->Clear();
}
{
if(If_saved == FALSE)
{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click();
}
}
this->Memo1->Lines->Clear();
}
文本框memo改动事件是这样设计的:
void __fastcall TMainForm::Memo1Change(TObject *Sender)
{
If_saved = FALSE;
}
{
If_saved = FALSE;
}
关闭时记得要提示是否保存:
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
if(If_saved == FALSE)
{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click(NULL);
}
}
}
{
if(If_saved == FALSE)
{
if(Application->MessageBox("文件未保存,是否要保存?","记事本",MB_OKCANCEL)==ID_OK)
{
N4Click(NULL);
}
}
}
编辑菜单下的几个按钮,相信大家看看名字就知道是做什么的了:
//---------------------------------------------------------------------------
void __fastcall TMainForm::N12Click(TObject *Sender)
{
this->Memo1->Undo();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N14Click(TObject *Sender)
{
this->Memo1->CopyToClipboard();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N15Click(TObject *Sender)
{
this->Memo1->CutToClipboard();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N16Click(TObject *Sender)
{
this->Memo1->PasteFromClipboard();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N17Click(TObject *Sender)
{
this->Memo1->ClearSelection();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N24Click(TObject *Sender)
{
this->Memo1->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N12Click(TObject *Sender)
{
this->Memo1->Undo();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N14Click(TObject *Sender)
{
this->Memo1->CopyToClipboard();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N15Click(TObject *Sender)
{
this->Memo1->CutToClipboard();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N16Click(TObject *Sender)
{
this->Memo1->PasteFromClipboard();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N17Click(TObject *Sender)
{
this->Memo1->ClearSelection();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N24Click(TObject *Sender)
{
this->Memo1->SelectAll();
}
//---------------------------------------------------------------------------
插入时间,可以这样设计:
void __fastcall TMainForm::N25Click(TObject *Sender)
{
TDateTime * Current_DateTime =new TDateTime; //使用的TDateTime
* Current_DateTime=Current_DateTime->CurrentDateTime(); //获取当前事件
Memo1->SetSelTextBuf(Current_DateTime->DateTimeString().c_str());
}
{
TDateTime * Current_DateTime =new TDateTime; //使用的TDateTime
* Current_DateTime=Current_DateTime->CurrentDateTime(); //获取当前事件
Memo1->SetSelTextBuf(Current_DateTime->DateTimeString().c_str());
}
是否自动换行呢?
void __fastcall TMainForm::N27Click(TObject *Sender)
{
if(N27->Checked == FALSE)
{
Memo1->ScrollBars=ssVertical;
N27->Checked = TRUE;
}else{
Memo1->ScrollBars=ssBoth;
N27->Checked = FALSE;
}
}
{
if(N27->Checked == FALSE)
{
Memo1->ScrollBars=ssVertical;
N27->Checked = TRUE;
}else{
Memo1->ScrollBars=ssBoth;
N27->Checked = FALSE;
}
}
当然还有设置字体:
void __fastcall TMainForm::N28Click(TObject *Sender)
{
if(FontDialog1->Execute())
{
this->Memo1->Font = this->FontDialog1->Font;
}
}
{
if(FontDialog1->Execute())
{
this->Memo1->Font = this->FontDialog1->Font;
}
}
创建窗体时候的一些小动作:
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
N27->Checked = TRUE;
N30->Checked = FALSE;
}
{
N27->Checked = TRUE;
N30->Checked = FALSE;
}
其实记事本是个小软件,设计起来十分简单,哦,对了,还有记得设置memo的对齐方式,否则你在最大化的时候,是不是觉得特别别扭呢?
顺便做个广告,我做的一个Google code开源项目。