Xodisalarni qayta ishlovchilarni yaratish
Endi tugmalar OnClick xodisasi uchun kod yo‘zamiz.
SpeedButton3 tugmasi faylni tahrirlash va fayl nomini panelda akslantirish uchun javob beradi:
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
if (OpenDialog1->Execute()) Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=OpenDialog1->FileName;
}
SpeedButton5 tugmasi faylni tanlangan nom bilan saqlash va fayl nomini panelda akslantirish uchun javob beradi:
void __fastcall TForm1::SpeedButton5Click(TObject *Sender)
{
if (SaveDialog1->Execute()) Memo1->Lines->SaveToFile(SaveDialog1->FileName);
StatusBar1->Panels->Items[0]->Text=SaveDialog1->FileName;
}
SpeedButton2 tugmasi tahrirlash oynasini tozalash uchun javob beradi. Agar buferda matn mavjud bo‘lsa, uni saqlash kerakligini so‘rash maqsadga muvofiq. Buning uchun Windows API MessageBox funktsiyasidan foydalanish qulaydir.
Matnni saqlash uchun SpeedButton5Click funktsiyasidan foydalanish mumkin:
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
if (Memo1->Lines->Count>0)
{
if (MessageBox(0,"Сохранить содержимое окна редактирования? ",
"Подтвердите сохранение",MB_YESNO)==IDYES)
{
SpeedButton5Click(Sender)
}
};
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";
}
SpeedButton1 tugmasi ilova oynasini berkitadi. Matnni saqlash kerakligini so‘rash uchun SpeedButton2Click funktsiyasidan foydalanish mumkin:
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{ SpeedButton2Click(Sender);
Close();
}
SpeedButton4 tugmasi faylni saqlash uchun javob beradi:
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
if (StatusBar1->Panels->Items[0]->Text=="Без имени")
SpeedButton5Click(Sender);
else Memo1->Lines->SaveToFile(StatusBar1->Panels->Items[0]->Text)
}
SpeedButton6 va SpeedButton7 tugmalari ajratilgan matn qismini buferga yoki joyida saqlab ko‘chirish uchun javob beradi:
void __fastcall TForm1::SpeedButton6Click(TObject *Sender)
{
Memo1->CutToClipboard();
}
//--------------------------------------------------------
void __fastcall TForm1::SpeedButton7Click(TObject *Sender)
{
Memo1->CopyToClipboard();
}
SpeedButton8 tugmasi faylni saqlash uchun javob beradi:
void __fastcall TForm1::SpeedButton8Click(TObject *Sender)
{
Memo1->PasteFromClipboard();
}
SpeedButton9 tugmasi ekranga "О программе" dialog panelini chiqarish uchun javob beradi. Buning uchun C++ Builder Ob’ektlar Хаzinаsidagi About paneli shablonidan foydalanamiz. File/New menyu punktini tanlab New Items dialog panelidagi Forms sahifasidan Copy optsiyali AboutBox shablonini tanlaymiz va tahrirlaymiz:
Endi ilova 2 formadan iborat. Asosiy forma bu Form1. Loyiha optsiyalari panelini chaqirib (Options/Project menu punkti) AboutBox ni Available Forms ro‘yxatga ko‘chiramiz
SpeedButton9 tugmasi uchun quyidagi kod kiritamiz:
void __fastcall TForm1::SpeedButton9Click(TObject *Sender)
{
Application->CreateForm(__classid(TAboutBox), &AboutBox);
AboutBox->ShowModal();
AboutBox->Free();
}
Menu yaratish uchun asosiy formaga TMainMenu komponentasini o‘rnatamiz. Sichqoncha o‘ng klavishasini bosib kontekstli menudan Menu Designer punktini tanlaymiz.
Quyidagi menularni yaratamiz: "&Файл" ("Созд&ать", "&Открыть...", "&Сохранить", "Сохранить &как...", '"-","В&ыход"), "&Вид" ("&Инструментальная панель"), "&Редактирование" ("&Вырезать" "&Копировать", "Вс&тавить") va "&?"("&О программе").
Belgi "&" menu punktlari bilan “issiq” klavishalarni boglash uchun ishlatiladi.
Tez murojaat klavishalarini ShortCut xossasiga qiymat berish o‘rqali o‘rnatamiz.
Endi ob’еktlаr nоziridan xodisalar sahifasini tanlaymiz va SpeedButton1Click, ... SpeedButton9Click funktsiyalarini menu punktlari cilan boglaymiz.
"Панель инструментов" menu punkti Checked xossasiga true qiymat beramiz va OnClick xodisasi uchun quyidagi kodni kiritamiz:
void __fastcall TForm1::N9Click(TObject *Sender)
{
N9->Checked=!N9->Checked;
Panel1->Visible=N9->Checked;
}
Asosiy forma turli elementlari uchun kontekstli menular yaratamiz. Buning uchun formaga ikki TPopupMenu komponentasini o‘rnatamiz – biri "Вырезать", "Копировать", "Вставить" punktlari bilan, ikkinchisi "Скрыть" punkti bilan. Bu punktlar uchun OnClick xodisasini qayta ishlovchi funktsiyalarni tanlaymiz. Va Memo1 hamda Panel1 komponentalari uchun mos kontekstli menu nomlarini tanlaymiz.
Dostları ilə paylaş: |