Создадим обработчики событий для нашей инструментальной панели, в данном случай используем только одно событие-"OnClick". Чтобы создать такой обработчик для каждой кнопки на ToolBar1 нужно кликнуть двойным счелчком на нужной кнопке. Кликнем на кнопке открытия файла и создадим обработчик следующего вида:
void __fastcall TForm1::ToolButton4Click(TObject *Sender)
{
if(OpenDialog1->Execute()==IDOK)
{
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=OpenDialog1->FileName;
}
}
Кликнем на кнопке "Сохранить как" и создадим обработчик:
void __fastcall TForm1::ToolButton6Click(TObject *Sender)
{
if(SaveDialog1->Execute()==IDOK)
{
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=SaveDialog1->FileName;
}
}
Кнопка "Создать" отвечает за очистку текстового поля, и создаёт новый документ, но перед этим если в поле редактированпя есть текст необходимо предложить сохранить старый документ:
void __fastcall TForm1::ToolButton3Click(TObject *Sender)
{
if(Memo1->Lines->Count>0)
{
int ind;
ind=MessageBox(0,"Сохранить содержимое окна?","Сохранить?",MB_YESNOCANCEL);
if(ind==IDYES)
{
ToolButton6Click(Sender);
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";
}
else if(ind==IDNO)
{
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";
}
else return;
}
StatusBar1->Panels->Items[0]->Text="Без имени";
}
Кнопка "Выход" закрывает приложение, но надо также спросить о сохранении текста если он есть:
void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
ToolButton3Click(Sender);
Close();
}
Кнопка "Сохранить" отвечает за сохранение под имеющимся именем
void __fastcall TForm1::ToolButton5Click(TObject *Sender)
{
if(StatusBar1->Panels->Items[0]->Text=="Без имени")
ToolButton6Click(Sender);
else Memo1->Lines->SaveToFile(StatusBar1->Panels->Items[0]->Text);
}
Кнопки "Вырезать", "Копировать", "Вставить" отвечают за работу с буфером обмена:
"Вырезать"
void __fastcall TForm1::ToolButton8Click(TObject *Sender)
{
Memo1->CutToClipboard();
}
"Копировать"
void __fastcall TForm1::ToolButton9Click(TObject *Sender)
{
Memo1->CopyToClipboard();
}
"Вставить"
void __fastcall TForm1::ToolButton10Click(TObject *Sender)
{
Memo1->PasteFromClipboard();
}
Кнопка шрифт отвечает за изменение вида шрифта:
void __fastcall TForm1::ToolButton12Click(TObject *Sender)
{
if(FontDialog1->Execute())
Memo1->Font=FontDialog1->Font;
}
Кнопка "О программе" вызывает окно AboutBox:
void __fastcall TForm1::ToolButton14Click(TObject *Sender)
{
Application->CreateForm(_classid(TAboutBox),&AboutBox);
AboutBox->ShowModal();
AboutBox->Free();
}
Также незабудем вставить include "about.h"
Теперь осталось наладить работу меню. Для этого привяжем к пунктам меню уже готовые обработчики событий, которые мы создавали для панели инструментов. Для этого вызываем Menu Designer, счелкнув по иконке меню двойным счелчком. Единствынный пункт меню который остался без обработчика, это "&Инструментальная панель", создадим для него обработчик:
void _fastcall TForm1::N11Click(TObject *Sender)
{
N11->Checked=!N11->Checked;
ToolBar1->Visible=N11->Checked;
}