Программа с помощью которой создан файл текстовый редактор

Стандартные диалоги – это диалоговые окна, общие для большинства приложений Windows. Например, когда пользователь сохраняет файл в редакторе Word, он использует диалоговое окно Save As … (Сохранить как …). Когда он сохраняет рабочую книгу в Microsoft Excel, он также использует диалоговое окно Save As …

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

Вместо этого программист попросту устанавливает стандартный компонент на форму и задает ему необходимые свойства.

В составе Lazarus поставляется 14 диалоговых компонентов. Все они находятся на вкладке Dialogs. Как и MainMenu, в среде Lazarus диалоговые компоненты являются невизуальными, они присутствуют на форме в виде значков, однако во время выполнения они невидимы.

В этом уроке мы рассмотрим диалоговые компоненты: TOpenDialog, TSaveDialog, TFontDialog.

Редактор текстовых файлов AkelPad

Lazarus. Диалоговые компоненты

Для активизации диалогового окна используется метод Execute(). Он выполняет открытие соответствующего окна и возвращает значение True, если пользователь щелкнул по кнопке ОК.

Компоненты TOpenDialog и TSaveDialog

Компонент TOpenDialog предназначен для выбора файла с целью последующего открытия, а компонент TSaveDialog — для последующего сохранения файла.

свойства приведены в таблице.

Эти компоненты не предназначены для выполнения конкретных действий: загрузки файла, записи в файл. Они применяются только для получения от пользователя желаемых настроек, например ввода полного имени файла вместе с путем поиска.

Рассмотрим использование диалоговых окон на примере создания простейшего Текстового редактора.

Задание. Создайте приложение Текстовый редактор. В приложении должно быть меню, содержащее пункты: Файл -Открыть, Файл-Сохранить, Шрифт. Приложение открывает текстовый файл на диске с использованием компонента TOpenDialog, записывает текст из файла в объект Memo на форме. После редактирования и форматирования текст необходимо сохранить.

Для выбора файла для сохранения использовать компонент TSaveDialog, при форматировании шрифта — компонент TFontDialog.

При работе с текстовыми файлами следует иметь в виду, что при выводе в TMemo файла с русским текстом, в Windows буквы могут отображаться некорректно. Это вызвано тем, что текстовые файлы в ОС Windows имеют кодировку CP-1251. Перед выводом текст необходимо преобразовать в кодировку UTF8.

Для преобразования символов из одной кодировки в другую можно использовать функции: SysToUTF8() и UTFToSys().

Ход выполнения проекта

1. Создайте форму и разместите на ней компоненты MainMenu, Memo1. Компонент MainMenu – невизуальный компонент, его значок можно поместить в произвольном месте.

Текстовые файлы в с++ | программа с использованием файлов

Memo-поле и простейший текстовый редактор

2. Чтобы начать формирование пунктов меню, дважды щелкните по компоненту TMainMenu1. Откроется специальное окно Редактор меню.

Определите пункты меню.

Меню первого уровне содержит два пункта: New Item1 и New Item2 . Первый пункт создается автоматически. Чтобы на этом уровне добавить второй пункт, откройте контекстное меню существующего пункта и выполните команду Вставить новый пункт (после). Появиться новый пункт New Item2.

Меню New Item1 содержит пункты : New Item3 и New Item4. Откройте контекстное меню пункта New Item1 и выполните команду Создать подменю. В подменю появиться пункт New Item3. Для него откройте контекстном меню и выполните команду Создать новый пункт (после). Появиться пункт New Item4.

Определяем пункты меню

3. Значения свойств установите в соответствии с таблицей.

Компонент Свойство Значение
MenuItem1 Caption Файл
MenuItem2 Caption Шрифт
MenuItem3 Caption Открыть
MenuItem4 Caption Сохранить
Form1 Caption Текстовый редактор
Memo1 ScrollBars ssVertical

4. Удалите текст «Memo1» из окна Memo1.

  • выберите в окне Инспектор объектов объект Memo1;
  • на странице Свойства в строке Lines дважды щелкните на значении String или на кнопке с многоточием для формирования и редактирования текста;
  • в окне Диалог ввода строк удалите текст «Memo1» и щелкните мышью на кнопке ОК.

Memo-поле и простейший текстовый редактор

5. Выберите в палитре компонентов вкладку Dialogs и поместите на форму компоненты OpenDialog, SaveDialog, FontDialog.

Эти компоненты невизуальные, разместить их в нижней части формы рядом со значком TMainMenu.

Lazarus. Стандартные диалоги

6. Настройте свойства компонентов OpenDialog, SaveDialog

Компонент Свойство Значение
OpenDialog1 Title Открыть
SaveDialog1 Title Сохранить

7. Чтобы реализовать выбор типа файла при открытии файла в окне диалога:

  • выберите в окне Инспектор объектов объект OpenDialog1;
  • на странице свойства дважды щелкните мышью по списку значений свойства Filter.
  • в окне Редактор фильтра (Filter Edit) задайте фильтры для выбора типа и расширения файла.

Выбор типа файла при открытии файла в окне диалога

8. Чтобы установить в качестве расширения файла первый вариант (.txt), задайте для свойства OpenDialog1.FilterIndex значение 1.

Читайте также:
Через какую программу скачивать игры на ПК

9. Для диалога SaveDialog задайте свойство DefaultExt = txt (чтобы расширение txt автоматически добавлялось к создаваемому файлу).

10. В разделе implementation после директивы < TForm1 >запишите программный код процедуры Ansi_Memo, реализующей загрузку текста из файла с системной кодировкой (кодировка Ansi) в memo-поле (кодировка UTF8), а также процедуры Memo_Ansi, сохраняющей текст из memo-поля в файле на диске.

procedure Ansi_Memo(File_Ansi: string); // Загрузка текста из файла в memo-поле на форме var tfile: TStringList; str: string; begin tfile:= TStringList.Create; // создать список строк // загрузить текст из файла в список строк tfile.LoadFromFile(File_Ansi); str:= tfile.Text; // загрузить текст из списка в memo-поле Form1.Memo1.Lines.Add(str); tfile.Free; end; procedure Memo_Ansi(File_Ansi: string); // Сохранение текста из memo-поля в файле на диске var tfile: TStringList; str: string; begin tfile:= TStringList.Create; // создать список строк str:=Form1.Memo1.text; // преобразовать текст в системную кодировку str:= UTF8ToSys(str); tfile.Add(str); // сохранить в файле tfile.SaveToFile(File_Ansi); tfile.Free; end;

11. Напишите программный код для процедуры обработчика щелчка на пункте меню Файл – Открыть. Для этого дважды щелкните на данном пункте меню.

procedure TForm1.MenuItem3Click(Sender: TObject);//Файл — открыть var File_Ansi:string; begin if OpenDialog1.Execute then begin File_Ansi:= OpenDialog1.FileName; File_Ansi:= UTF8ToSys(File_Ansi); Ansi_Memo(File_Ansi); end; end;

После выбора пользователем файла в свойстве OpenDialog1.FileName будет находиться имя файла вместе с путем к нему.

Обратите внимание на оператор:

Если имя файла, а также путь содержит кириллицу, то необходимо строку с именем файла преобразовать в системную кодировку.

12. Напишите программный код процедуры обработчика щелчка на пункте меню Файл-Сохранить:

procedure TForm1.MenuItem4Click(Sender: TObject); //Файл — Сохранить var File_Ansi:string; begin if SaveDialog1.Execute then begin File_Ansi:=SaveDialog1.FileName; File_Ansi:= UTF8ToSys(File_Ansi); Memo_Ansi(File_Ansi); end; end;

Приложение открывает диалоговое окно «Сохранить», в котором задается имя файла. Имя файла из свойства SaveDialog1.FileName запоминается в переменной FName. В заключительной части процедуры оператор Memo1.Lines.SaveToFile(FName); используется для записи в файл содержимого свойства Lines объекта Memo1

13. Напишите программный код процедуры обработчика щелчка на пункте меню Шрифт:

procedure TForm1.MenuItem2Click(Sender: TObject); begin FontDialog1.Font:= memo1.Font; if FontDialog1.execute=true then begin Form1.Memo1.Font := FontDialog1.Font; end; end;

14. Сохраните, откомпилируйте и запустите на выполнение созданное приложение.

15. Щелкните мышью на кнопке Открыть, в диалоговом окне Открыть текстовый файл выберите папку, задайте тип файла и выберите текстовый файл, после чего нажмите кнопку Открыть.

16. Отредактируйте текст в окне приложения и нажмите кнопку Сохранить.

После этого в диалоговом окне сохранить текстовый файл выберите в поле тип файла расширение для сохраняемого файла, задайте его имя и щелкните мышью по кнопке Сохранить.

17. Открыв в окне Проводника папку, в которой был сохранен файл, убедитесь, что файл с указанным вами именем в ней есть.

18. Измените размер шрифта и цвет в диалоговом окне Шрифт.

19. Завершите работу с приложением

До встречи в следующем уроке!

Источник: gospodaretsva.com

Простое Windows-приложение — текстовый редактор

Рассмотрим пример проектирования стандартного оконного приложения. Простейшая последовательность действий:
1) визуальное проектирование интерфейса (перенос на форму с Панели элементов необходимых визуальных и не визуальных элементов);
2) генерация заготовок методов обработки событий, связанных с элементами управления;
3) программирование методов обработки событий.

Постановка задачи

Создать текстовый редактор с обязательными функциями работы с файлами «Открыть» и «Сохранить как», а также функциями редактирования текста. Выбор действий с файлами осуществлять через главное меню.

Реализация

Разместим на форме визуальный элемент textBox1 класса TextBox. Размер элемента сделайте чуть меньше размера формы, сместив его вниз от заголовка на 30-40 пикселей. Задайте свойство textBox1.MultiLine = true (для редактирования текста в несколько строк).

Перетащите с Панели элементов компонент menuStrip1 класса MenuStrip для создания меню.В левом верхнем углу рабочей области формы появится кнопка «Введите здесь» , а на панели невизульных компонентов отобразится элемент menuStrip1.

Для выбора имен файлов для их чтения и записи перетащим на эту же панель элементы openFileDialog1 (класс OpenFileDialog) и saveFileDialog1 (класс SaveFileDialog).

Кликнув по кнопке «Введите здесь», введите имя раздела меню «Файл» и добавьте ниже следующие пункты меню работы с файлами «Открыть», «Сохранить как» и «Выход». Ваша форма (вместе с панелью невизуальных элементов) будет выглядеть примерно так:
Примечание: для наглядности изменено свойство формы BackColor = Color.Peru. Первая группа действий закончена.

Вторая группа действий обеспечивает генерацию заголовков методов обработки событий, связанных к кнопками меню. Для этого дважды нажмите каждую из трех позиций меню, а также событию Load формы Form1 на закладке «События» панели «Свойства» поставьте в соответствие метод Form1_Load (двойной клик справа от в строке Load).

Откроем форму в режиме Кода (файл Form1.cs):

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ТекстовыйРедактор < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void открытьToolStripMenuItem_Click(object sender, EventArgs e) < >private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e) < >private void выходToolStripMenuItem_Click(object sender, EventArgs e) < >private void Form1_Load(object sender, EventArgs e) < >> >

Читайте также:
Какие программы для миди клавиатуры

Перейдем к третьей группе действий — написанию кода для этих четырех методов.

Метод Form1_Load( ) используем для очистки поля компонента textBox1, для задания форматов файловых диалогов и имени файла — контрольного примера при его открытии:

private void Form1_Load(object sender, EventArgs e)

Комментарий. При загрузке формы мы задаем свойство FileName объекта openFileDialog1 указанием имени файла для открытия, а также задаем фильтры для диалогов открытия и сохранения файлов. Сравните работу программы без использования этого метода.

В методе открытьToolStripMenuItem_Click( ) используется компонент openFileDialog1 для выбора имени файла для чтения. Если имя не выбрано (FileName = String.Empty), то работа метода завершается. Иначе создается новый экземпляр класса System.IO.StreamReader (var Читатель) с указанием имени файла и кодировки, данные из текстового файла переносятся в textBox1, объект Читатель закрывается. Добавлена обработка исключений, которые могут возникнуть при открытии файла:

private void открытьToolStripMenuItem_Click(object sender, EventArgs e) < openFileDialog1.ShowDialog(); if (openFileDialog1.FileName == String.Empty) return; // Чтение текстового файла try < var Читатель = new System.IO.StreamReader( openFileDialog1.FileName, Encoding.GetEncoding(1251)); textBox1.Text = Читатель.ReadToEnd(); Читатель.Close(); >catch (System.IO.FileNotFoundException Ситуация) < MessageBox.Show(Ситуация.Message + «nНет такого файла», «Ошибка», MessageBoxButtons.OK, MessageBoxIcon.Exclamation); >catch (Exception Ситуация) < // отчет о других ошибках MessageBox.Show(Ситуация.Message, «Ошибка», MessageBoxButtons.OK, MessageBoxIcon.Exclamation); >>

Аналогично выполняется запись (сохранение) текстового файла:

private void сохранитьКакToolStripMenuItem_Click(object sender,EventArgs e) < saveFileDialog1.FileName = openFileDialog1.FileName; if (saveFileDialog1.ShowDialog() == DialogResult.OK) < try < var Писатель = new System.IO.StreamWriter( saveFileDialog1.FileName, false, System.Text.Encoding.GetEncoding(1251)); Писатель.Write(textBox1.Text); Писатель.Close(); >catch (Exception Ситуация) < // отчет о других ошибках MessageBox.Show(Ситуация.Message, «Ошибка», MessageBoxButtons.OK, MessageBoxIcon.Exclamation); >> >

Последний метод — закрытие формы — реализуется одним оператором:

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

Подготовим в блокноте текстовый файл Text2.txt и разместим его в подкаталоге data папки, где будет размещено ваше приложение. Запустим программу на выполнение. Добавьте в окне редактора несколько строк, сохраните файл с другим именем. Откройте новый файл и удалите часть текста в окне редактора.

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

ВЫВОД: В первом приближении поставленная задача решена. Данный пример приведен всего лишь для понимания:
во-первых, алгоритма действий разработчика визуального приложения «интерфейс, события-методы, реализация»;
во-вторых, удобства использования готовых компонентов (нам не пришлось программировать операции редактирования текста — стандартные события уже привязаны к компоненту textBox1);
в-третьих, целесообразности использования готовых компонентов (файловых диалогов) с точки зрения стандартизации интерфейса пользователя и программы.

Напомним, что в статье про классы мы отмечали, что в языке C# предусмотрено несколько разновидностей данных-членов и функций-членов. Пока мы подробно рассмотрели только поля и константы — как данные-члены, а также методы — как функции-члены класса. В следующих статьях мы рассмотрим события, как данные-члены класса и трехзвенную цепочку события-делегаты-методы. После чего вернемся к член-функциям класса: свойствам, конструкторам, финализаторам, операциям и индексаторам.

NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.

Источник: c-sharp.pro

Урок 6 — Простейший текстовый редактор

Подписаться на RSS рассылку

Выложим на форму TMemo, и TMainMenu. Установим свойство Align в alClient для того, чтобы компонент растянулся на все свободное пространство формы. Установим свойство ScrollBars в ssBoth, а WordWrap в False. И уберем введенный в Memo1 текст поумолчанию, удалив этот текст из свойства Lines.

Щелкнем по MainMenu1 два раза — появится окно. Теперь создадим меню «Файл». В нем элементы: «Создать», «Открыть», «Сохранить», «Сохранить как. «, разделительную полоску (символ «-«) и «Выход»

Установим горячие клавиши как показанно на рис 1. Горячие клавиши устанавливаются в свойстве ShortCut

Рис. 1 — Меню «Файл»

Аналогично создаем меню «Правка»:

Рис. 2 — Меню «Правка»

Аналогично создаем меню «Формат»:

Рис. 3 — Меню «Формат»

Итак, начнем. Окошко редактора меню нам больше не нужно — его можно закрыть. На нашей форме уже появилось меню. Оно выпадает при щелчке, вобщем практически рабочее. Осталось только написать код, который будет выполняться при выборе чего-либо из меню.

Щлекнем по меню «Файл», а там выберем «Выход».

Рис. 4 — Создание события onClick

После нажатия по меню «Выход» появляется окно редактора кода с уже готовой процедурой. Пишем:

Close;

Обратите внимание, что Close и Form1.Close это одно и тоже. Т.к. форма является родителем то имя родителя можно опускать.

Теперь после выбора меню «Выход» программа закроется.

Реализация переноса по словам

В меню «Формат» выберем «Перенос по словам»:

Читайте также:
Программа которая убирает эффект красных глаз

procedure TForm1.N14Click(Sender: TObject); begin If Memo1.WordWrap then begin Memo1.WordWrap:=false; Memo1.ScrollBars:=ssBoth; N14.Checked:=False; end else begin Memo1.WordWrap:=True; Memo1.ScrollBars:=ssVertical; N14.Checked:=True; end; end;

Разберемся что мы делаем: если уже установлен режим переноса по словам то мы убираем его и устанавливаем галочку на N14. И наоборот.

Реализация функции «Сохранить как. «

Нам понадобится диалоговое окно сохранения документа. Воспользуемся компонентом TSaveDialog на вкладке Dialogs. Выложим его на форму. Установим фильтр, т.е. те файлы которые будет этот диалог отображать. Нам нужно *.txt, т.е. текстовые документы. Чтобы это сделать нужно найти свойство Filter и нажать на кнопку . Появится окно. Заполните его как показанно на рис.

5.

Рис. 5 — Редактор фильтра

Теперь измените свойство DefaultExt на *.txt. Это расширение которое будет добавляться к файлу.

Создадим процедуру сохранения файла. Напишем этот код сразу после .

Procedure SaveAs; begin If Form1.SaveDialog1.Execute then begin Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName); FileWork:=Form1.SaveDialog1.FileName; end; end;

Далее выбераем в меню «Файл» —> «Сохранить как. «. Там пишем:

SaveAs;

Что же тут делается и как все работает? Очень просто! Когда пользователь выберает пункт меню «Сохранить как. » то вызывается процедура SaveAs, которую мы уже написали. Теперь разберем процедуру SaveAs. Когда вызывается функция Execute у TSaveDialog то появляется диалог сохранения и если пользователь нажмет кнопку сохранить, то функция Executeвозвратит True иначе False.

Если возвратится True то будет выполнена процедура SaveToFile, т.е. сохранение файла. В SaveDialog1.FileName хранится путь к файлу в который пользователь указывает в диалоге.

Я ввел глобальную переменную FileWork. В ней будет храниться путь к файлу с которым работает пользователь. Это нужно для реализации функции «Файл» —> «Сохранить». Не забудьте ее объявить в разделе Var перед implementation. Должно быть вроде этого:

var Form1: TForm1; FileWork: String;

Реализация функции «Сохранить»

Выбераем «Файл» —> «Сохранить». И пишем:

If FileWork=» then SaveAs else Memo1.Lines.SaveToFile(FileWork);

Если пользователь уже сохранял файл то в FileWork будет что-то храниться, в любом случае не «пустота». Если хранится », т.е. ничего не хранится то вызываем SaveAs. Она как раз и покажет диалог сохранения. Если переменная FileWork не пустая, то сохраняем файл по тому пути который указан в FileWork.

Реализация функции «Открыть»

Помимо TSaveDialog существует TOpenDialog . И если Вы хоть малость знаете английский, то уже поняли бы, что этот компонент предназначен для открытия файлов.

Выложите этот компонент на форму и свойство Filter измените так же как у SaveDialog1.

Вообще компоненты TSaveDialog и TOpenDialog очень похожи. Диалог открытия вызывается так же — функцией Execute, которая возвращает True если пользователь желает открыть файл.

Жмем «Файл» —> «Открыть». Пишем:

if OpenDialog1.Execute then begin Memo1.Lines.LoadFromFile(OpenDialog1.FileName); FileWork:=OpenDialog1.FileName; end;

Запускаем программу F9 и пробуем. Если все делали правильно, то все должно работать.

Реализация функции «Создать»

Жмем «Файл» —> «Создать». Пишем:

FileWork:=»; Memo1.Clear;

Тут все понятно и без объяснений. Но все же объясню: первая строчка очищает FileWork, т.е. программа не будет знать о том что мы с каким-то файлом работали. Вторая строчка очищает Memo1.

Реализация функций в меню «Правка»

По клику на меню «Вырезать»:

Memo1.CutToClipboard;

По клику на меню «Копировать»:

Memo1.CopyToClipboard;

По клику на меню «Вставить»:

Memo1.PasteFromClipboard;

Реализация функций в меню «Шрифт. «

Нам понадобится еще один компонент — TFontDialog . Функция для вызова такая же как у TOpenDialog и TSaveDialog — Execute. Создаем событие по клику по меню «Шрифт. «.

if FontDialog1.Execute then Memo1.Font:=FontDialog1.Font;

Если пользователь применил изменения, то свойству Font у Memo1 присваиваем выбранные пользователем настройки шрифта. Они хранятся в свойстве Font у FontDialog1.

Завершаем.

Основная часть программы написана. Осталось совсем немного. Нам нужно сделать активной форму, чтобы в инспекторе объектов появились ее свойства, но из-за Memo1 который растянут на всю форму не получается это сделать. Есть несколько вариантов. Можно просто выделить форму в Object TreeView.

А можно выделить Memo1, затем зажать клавишу Shift и щелкнуть по Memo1 еще раз.

Итак, Вы активировали форму. Изменим заголовок окна: в свойстве Caption напишите «Блокнот». Свойство Position измените на poScreenCenter для того, чтобы форма появлялась по центру экрана.

Ну и напоследок добавим модуль XPMan в список модулей (секция uses). Выглядель это должно примерно так:

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, XPMan;

Этот модуль подключает XMManifest к приложению, т.е. если у Вас установленна XP, то все компоненты приобретают XP-шный вид, а если Vista — то становятся стиля Висты, а не как в Win98 или Win2000. Можете поэкспериментировать

Скачать исходник программы

Урок 7 — Изучаем компоненты TImage, TGroupBox, TRadioGroup

Просмотров: 37821

Источник: delphidevelop.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru