Создание текстового редактора и для работ с текстовыми файлами
Описание файла
Документ из архива "Создание текстового редактора и для работ с текстовыми файлами", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Создание текстового редактора и для работ с текстовыми файлами"
Текст из документа "Создание текстового редактора и для работ с текстовыми файлами"
6
Упр 2 Сем 2 Создание текстового редактора для работ с текстовыми файламиСоздание текстового редактора для работ с текстовыми файлами
-
Создание макета формы.
Запустите Turbo Delphi, (или если Turbo Delphi уже запущена) введите команду File\New\VCL Forms Application – Delphi for Win32
Макет формы представляет образ формы в интегрированной среде разработки программы с размещенными на ней компонентами.
Компонентом называют размещаемый на макете формы имеющий образ объект, а также соответствующий значок в Палитре компонентов, предоставляющий определённые функциональные возможности для разрабатываемой программы. Предописанные компоненты Delphi представляют классы, имеющие такие же имена, но с префиксом T. Например, компонент Memo – многострочный текстовый редактор класса TMemo позволяет хранить строки текста, отображать их в своём окне, иметь полосы прокрутки, выделять фрагменты текста и работать в выделенными фрагментами и т.д..
-
Разместите на форме компонент Memo1 – многострочный редактор текста: на панели инструментов Standard щелкните на значке TMemo, а затем щелчком на форме, буксировкой и перетаскиванием маркеров придайте ему такие размеры и положение, чтобы осталось сверху место для размещения других компонентов.
-
Разместите на форме значок MainMenu1: на панели инструментов Standard щелкните на значке MainMenu, а затем на свободном месте на форме. Этот компонени будет использован для создания на форме строки меню с подменю.
-
А налогично, используя панель инструментов Dialogs, разместите на форме значки OpenDialog1 – окна диалога выбора открываемого файла, SaveDialog1 - окна диалога выбора файла для сохранения редактируемого текста.
В результате макет формы должен принять вид как на рис 1, но без строки меню.
-
Выполните программу, убедитесь в том, что невизуальные компоненты – значки меню и диалогов не отображаются на форме, а в остальном вид формы полностью соотетствует её макету.
Резюме
-
Создание макета формы начинается с размещения на ней компонентов, позволяющих реализовать некоторые функции разрабатываемой программы. Компоненты представлены значками в Палитре компонентов, сгруппированными на вкладках по специфике применения. Для размещения компонента на макете формы следует щелкнуть его значок на вкладке Палитры компонентов, а затем щелкнуть на макете формы.
-
После размещения компонентов на форме буксировкой можно придать форме и компонентам необходимые положение и размеры.
-
Н екоторые компоненты не отображаются на форме во время работы программы и их размещение на макете формы определяется лишь удобством разработки программы. В рассматриевом примере такими компонентами являются все, кроме Memo1.
-
Визуальными компонентами называют те, которые имеют окна, то есть могут быть видимыми при работе программы. Например, компоненты Memo, Label, Edit.
-
Невизуальными компонентами называют такие, которые не имеют на форме соответствующих значкам образов при работе программы. Например, компоненты, представляющие окна диалога.
-
Создание структуры меню.
-
Двойным щелчком на значке MainMenu1 откройте Конструктор меню (см. рис. 2), дайте первому пункту строки меню название Файл, а первому пункту его подменю название Создать.
-
Справка. Чтобы добавить пункт меню/подменю, следует щелчком выделить свободную рамку в Конструкторе меню, набрать текст названия пункта меню в строке Caption окнаИнспектора объектов – Object Inspector на вкладке Properties (см. рис. 4) и нажать клавишу Enter. Если это название набрано русскими буквами, то именем пункта меню, используемым в программе, будет имя вида N<число>. Например, для первого пункта меню - N1, для второго - N2, и так далее.
-
А налогично создайте пункт меню Работа с двумя подпунктами с временными именами А и Б (в дальнейшем эти имена должны быть заменены на имена пунктов вашего варианта задания (см. ниж).
Форма и расположеные на ней компоненты образуют иерархическю структуру, отображаемую в окне Дерева объектов (окне Structure). Для выполняемого задания её вид представлен на рис. 3.
Резюме
-
При добавлении на форму компонентов и пунктов подменю происходит добавление в объявление типа формы TForm1 одноименных полей соответствующих типов. Полный их перечень, включая и имя формы, представлен в раскрывающемся списке Инспектора объектов (см. рис. 4 и рис. 5). Выбор в этом списке строчки приводит к отображению на вкладках Инспектора объектов сведений о значениях свойств соответствующего объекта (на вкладке Properties) и методов обработки связанных с этим объектом событий (на вкладке Events).
-
После размещения компонентов на форме буксировкой можно придать форме и компонентам необходимые положение и размеры, изменяя таким образом значения их свойств, которые будут сохранены и при старте программы, если не изменены программно. Значения свойств формы и компонентов на стадии проектирования прог раммы можно изменять и непосредственно на вкладке Properties окна Инспектора объектов.
-
Создание заглушек обработчиков событий.
О
procedure TForm1.N2Click(Sender: TObject);
begin
//Обработчик щелчка на пункте меню ФАЙЛ.СОЗДАТЬ
end;
Рис. 6
бработчик события – это метод, автоматически вызываемый при наступлении события, связанного с формой или компонентом и имеющий в программе определенную функцию, то есть выполняющий определённую работу в соответствующей ситуации. Например, обработчик щелчка на пункта меню Файл/Открыть… должен, в частности, обеспечить диалог по выбору файла и загрузку его текста в поле многострочного редактора (TMemo).Ш
type
TForm1 = class(TForm)
Memo1: TMemo;
MainMenu1: TMainMenu;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Рис. 7. Объявление типа формы после добавленияуправляющих элементов и создания заглушек методов
аблоном обработчика события будем называть конструкцию, состоящую только из заголовка метода и операторных скобок. Шаблон создётся автоматически, например, при двойном щелчке в поле, соответствующем событию формы или компонента, на вкладке События Инспектора объектов. Одновременно в объявление класса TForm1 добавляется заголовок метода.Заглушкой обработчика события будем называть его шаблон, дополненный комментариями и\или объявлениями и операторами, но не выполняющий полностью требуемых функций обработчика события.
-
Для пункта меню Создать двойным щелчком в строке OnClick на вкладке Events в окне Инспектора объектов (см. рис. 5) или двойным щелчком на строке Создать {N2} в дереве объектов создайте шаблон обработчика события – щелчка на пункте меню Создать во время исполнения программы, и превратите его в заглушку, добавив комментарий, как показано на рис. 6.
Справка. Если не добавить что-либо в шаблон обработчика события, то он и соответствующий заголовок метода в объявлении класса TForm1 будут удалены из текста программы при её подготовке к выполнению.
-
Аналогично, снабдив соответствующими комментариями, создайте заглушки обработчиков событий – щелчков на всех пунктах подменю строки меню.
-
Аналогично, снабдив соответствующим комментарием, создайте заглушку обработчика события – создания формы, шаблон которого можно получить так: щелкнуть на свободном месте макета формы и в Инсперторе объектов на вкладке Events сделать двойной щелчок в строке OnCreate.
После добавления на форму управляющих элементов и заглушек обработчиков событий объявление класса формы TForm1 примет вид, показанный на рис. 7.
Выполните программу и убедитесь в наличии на форме меню и окна текстового редактора. Выполняйте такие проверки после каждого добавлени\изменения программы.
-
Добавление переменных, представляющих текущее состояние процесса обработки данных.
С правка. Эти переменные используются разными методами и их объявление можно дать либо внутри объявления класса, либо в разделе var в интерфейсной части, либо в разделе var в части реализации. Если в дальнейшем предполагается запретить доступ к этим переменным вне данного модуля (например, в наследниках класса, объявляемых в других модулях или в основной программе), то их следует объявить в части реализации или в разделе private класса. TForm1.
Справка. Чтобы не появлялось окно консоли введите команду Project/Options/Linker и сбросьте флажок Generate Console Application.
-
Добавьте в раздел реализации объявление переменной S:string. Она должна представлять спецификацию файла, обрабатываемого в текущий момент. Её пустое значение будет обозначать, что текст из элемента Memo1 еще не сохранен в файле.
-
Создание обработчиков событий.
-
Добавьте в метод procedure TForm1.FormCreate(Sender: TObject) обработки события FormCreate операторы и комментарии, как на рис.8.
-
Создайте обработчик procedure TForm1.N6Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить как…, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, как на рис. 9.
-
Для проверки работы. Запустите программу, наберите в поле Memo1 строки Иванов…. 5 5 5 и Медоватов. 4 4 5 (фамилии дополнены точками до 10 символов) и сохраните этот текст в текущей папке в файле F1.txt. Затем откройте этот файл на новой вкладке с именем F1.txt окна редактора текстов Delphi следующим образом: введите команду Файл/Открыть…, в появившемся окне диалога Open выберите в раскрывающемся списке Тип файлов: строку Any file(*.*), в списке файлов выберите F1 и щелкните на кнопке Открыть. В дальнейшем, если будет выполняться сохранение в файле, в среде Delphi будет появляться сообщение, предлагающее обновить текст на вкладке F1.txt.
-
Создайте самостоятельно обработчик procedure TForm1.N5Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить, имея в виду следующее: если текст ещё не сохранялся в файле, точнее, если S=’’, то следует вызвать N6Click(Self) - обработчик, созданный для пункта меню Файл.Сохранить как… в предыдущем пункте задания, иначе – просто выполнив оператор Memo1.Lines.SaveToFile(S) – сохранение всего редактируемого текста в файле со спецификацией, хранящейся в S.
-
procedure TForm1.N3Click(Sender: TObject);
begin