Создание простейшего текствого редактора. Пост третий

Первый пост на эту тему вот. Второй – тут.

В этой посте займемся созданием обработчиков событий для пунктов меню нашего редактора.

Для создания обработчика события достаточно сделать двойной щелчок по кнопке и шаблон будет создан автоматически. Далее можно переходить к непосредственному написанию кода.

Начнем с пункта меню создания нового файла. Фактически создание нового представляет собой очистку текстового поля. Правда, перед очисткой следует проверить на наличие записей в нем и, если запись есть, предложить ее сохранить. Так и запишем:

if(Memo1->Lines->Count>0)
{
  if(MessageBox(0,"Сохранить содержимое окна","Создание нового файла",MB_YESNO)==IDYES)
  {
    ToolButton5Click(Sender);
  }
}
 Memo1->Clear();
 StatusBar1->Panels->Items[0]->Text="Безымянный документ";

Далее перейдем к открытию файла. Для этого будем использовать окно диалога OpenDialog1. Код обработчика события выглядит так:

if(OpenDialog1->Execute())
{
  Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
  StatusBar1->Panels->Items[0]->Text=OpenDialog1->FileName;
}

Теперь нужно создать обработчик для события нажатия кнопки сохранения файла. Его код выглядит так:

if(SaveDialog1->Execute())
{
  Memo1->Lines->SaveToFile(SaveDialog1->FileName);
  StatusBar1->Panels->Items[0]->Text=SaveDialog1->FileName;
}

Переходим к меню «Вырезать». Для этого нам понадобится использовать буфер обмена. Код обработчика события:

Memo1->CutToClipboard();

Обработчик события для менюшки «Копировать» выглядит так:

Memo1->CopyToClipboard();

А для меню «Вставить»:

Memo1->PasteFromClipboard();

Осталось настроить обработчики для пунктов меню. Код уже написан, теперь нужно создать связи. Для этого достаточно выбрать из раскрывающегося списка существующую функцию для обработки данного события. Сделать это можно так: дважды щелкните по компоненту MainMenu1 и в свойствах каждого пункта меню, на вкладе Events выберите необходимое событие OnClick. Если давали кнопкам осмысленные имена – будет проще. В противном случае – придется поглядеть, что какая значит )))

Внешний вид получившегося редактора:

Внешний вид приложения

Вот и все. Результат можно скачать по ссылке.

0

  1. Спасибо большое очень полезная информация автору огромное спасибо,продолжайте в том же духе

  2. win7,RAD Ebarcadero XE5
    работает только так

    1
    2
    
    HWND hWnd;
    hWnd = GetForegroundWindow(); if (MessageBox(hWnd,L"Сохранить?",L"Cохранение", MB_YESNO)==IDYES) sohr();

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *