Текстовый редактор на Delphi

Из этой статьи вы узнаете как создать простой, но удобный текстовый редактор на Delphi. Конечно почти никакой практической пользы эта программа не принесёт, но начинающие смогут научится некототорым интересным вещам, в частности как организовать Сохранение/Загрузку документов, их вывод на печать и работа с буфером обмена. Внимание! Эта статья предполагает, что вы хоть немного умеете программировать на Delphi. Если что-то не понятно мыльте на madcoder@hotbox.ru, а лучше задавайте вопросы в форуме на нашем сайте.

Итак начнём. Прежде всего создайте новый проект и сохраните его в отдельную папку. В поле Form1.Caption напишите что-нибудь типа My Text Editor — этот текст будет заголовком главного окна. Затем поместите на форму компонент Memo с вкладки Standart.

Свойство Align нужно поставить в значение alClient, чтобы Memo заняло всё пространство формы. Теперь два раза кликните на свойстве Lines и в появившемся редакторе сотрите слово Memo1 и нажмите OK. Так же вы можете задать шрифт вашего будущего редактора через свойство Font, я советую поставить там шрифт Courier Cyr, размером 12 или 14. И не забудте усттановить свойство ScrollBars в ssVertical, чтобы у редактора была полоса прокрутки. Запустив программу клавишей F9 вы можете посмотреть на первые результата. Сам редактор работает, но в нем нет выпадающего меню. Поэтому закройте программу и читайте дальше.

Для создания выпадающего меню, нужно добавить на форму компонент MainMenu с той же вкладки. В этой части статьи мы реализуем следующие пункты : «Новый документ», «Сохранить как...», «Открыть», «Выход» и окно «О программе». Во второй части мы добавим возможность печати документа, поиска слов, а также средства для работы с буфером обмена. Ну а пока с помощью Menu Designer'а (для его вызова кликните правой кнопкой мыши на MainMenu1 и выберите Menu Designer) Создайте пункт меню Файл и добавте подпункты Создать, Открыть, Сохранить как... и Выход. Хотите маленький секрет? Чтобы в меню создать разделяющю черту, нужно в поле Caption набрать символ «-» и нажать Enter. Также нужно создать отдельный пункт меню (т.е. без подпунктов) — О программе

Теперь создадим обработчик события для пункта «Создать». Для этого закройте Menu Designer и кликните по тому пункту меню, для которого хотите создать обработчик. В нашем случае это «Создать». При выборе этого пункта программа должна очистить Memo, чтобы можно было набрать новый текст. Также нам нужно восстановить заголовок форму, на тот случай если перед этим был загружен файл. Для очищения строк у Memo есть метод Clear. Поэтому наш обработчик будет выглядеть так:

procedure TForm1.N2Click(Sender: TObject); 
begin
  Memo1.Lines.Clear; // Очищаем строки Memo
  Form1.Caption:=('My Text Editor'); // Востанавливаем заголовок формы.
end;

Теперь точно таким же способом создаём обработчик для пункта «Выход». Он будет выглядеть так:

procedure TForm1.N6Click(Sender: TObject); 
begin 
  Close;
end;

Команда Close как вы наверное знаете закрывает программу. Для того чтобы организовать открытие файла нужно добавить на форму компонент OpenDialog , с вкладки Dialogs. Кликните два раза по свойству Filter и укажите там маски файлов которые вы собираетесь открывать. Например *.txt . Замечу, что маски нужно указывать в левом поле редактора фильтра, а в правом описание этой маски. Например напишите так:

Текстовые файлы (txt) | *.txt

После того, как вы задали маску открываемых файлов, напишите такой обработчик для пункта «Открыть»:

procedure TForm1.N3Click(Sender: TObject);
begin
  If OpenDialog1.Execute Then // Открываем диалоговое окно
  If OpenDialog1.Filename<>'' Then
  Begin
    Memo1.Lines.LoadFromFile(OpenDialog1.Filename);
    // Загружаем файл в Memo
    Form1.Caption:=(OpenDialog1.Filename+' — My Text Editor');
    // Добавляем имя файла в заголовок.
  End;
End;

Хочу обратить ваше внимание на то, что такой код с минимальными изменениями можно приспособить для открытия любых файлов, а не только текстовых. Для реализации сохранения файлов, нужно использовать компонент SaveDialog с той же вкладки. Задайте для него ту же маску, а для пункта «Сохранить как...» напишите такой обработчик:

procedure TForm1.N4Click(Sender: TObject);
begin
  IF SaveDialog1.Execute then // Открываем диалоговое окно
  IF SaveDialog1.Filename<>'' then
  Begin
    Memo1.Lines.SaveToFile(SaveDialog1.Filename);
    Form1.Caption:=(SaveDialog.Filename+' — My Text Editor');
    // Добавляем имя файла в заголовок.
  End;
End;

Почти готово. Теперь расскажу о том, как сделать окно «О программе». Мы сделаем это самым простым способом. Создайте новую форму, назовите её например AboutBox. Задайте нужный размер,потом c помощью компонентов Label создайте нелобходимые надписи, можно добавить логотип программы с помощью Image (Вкладка Additional ). Также уберите кнопки максимизации и минимизации окна с помощью свойства BorderIcons. Теперь напишите такой обработчик для пункта «О программе»:

procedure TForm1.N8Click(Sender: TObject); 
begin 
  AboutBox.Visible:=true;
end;

Да, не забудте в AboutBox добавить кнопку OK и напишите для неё такой код:

procedure AboutBox.Button1Click(Sender: TObject); 
begin 
  AboutBox.Close;
end;

Всё, наш текстовый редактор в общих чертах готов. Нажмите F9 — должно появится диалоговое окно. Нажмите Yes, а потом F9 ещё раз и вы сможете испытать редактор в работе. Для получения exe файла жмите CTRL + F9, exe'шник должен появится в той директории, куда вы сохранили программу. Если вы сделали всё правильно, то у вас должно получится нечто похожее на это:

Результат В полный размер

Автор: MadCoder

Copyright © 2002-2006 Максим Комогоров. Все права защищены.
Замечания, вопросы и предложения направляйте
по адресу: webscript@pisem.net
Поиск по сайту
О проекте
Архив
Hosted by uCoz