Создание текстового редактора и для работ с текстовыми файлами, страница 2
Описание файла
Документ из архива "Создание текстового редактора и для работ с текстовыми файлами", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Создание текстового редактора и для работ с текстовыми файлами"
Текст 2 страницы из документа "Создание текстового редактора и для работ с текстовыми файлами"
//Обработчик щелчка на пункте меню ФАЙЛ.ОТКРЫТЬ...
if Memo1.Modified then begin //если текст Memo1 был
// изменён, то предложить диалог для выбора файла
case MessageDlg('Текст был изменен. Сохранить данные'+
' в файле по выбору?', mtConfirmation,
[mbYes, mbNo, mbCancel], 0) of
6{idYes}: begin // сохранить текст в файле, выбрав его
//в диалоге ФАЙЛ.СОХРАНИТЬ КАК...
N6Click(Self);
//перейти к диалогу ФАЙЛ.ОТКРЫТЬ
end;
{2}idCancel: exit;//выйти из диалога ФАЙЛ.ОТКРЫТЬ
//в редактор без сохранения
{7}idNo:;//не сохранять текст в файле и
//перейти к диалогу ФАЙЛ. ОТКРЫТЬ
end; //case
end;//if Memo1.Modified
//Открытие окна диалога ФАЙЛ.ОТКРЫТЬ для выбора папки
//и файла, текст из которого следует
//поместить в Memo1 - рабочую область редактора.
if Form1.OpenDialog1.Execute then begin //если выбран файл
S:=OpenDialog1.FileName;//то S присвоить спецификацию файла,
Memo1.Lines.LoadFromFile(S);//загрузить текст из файла в Memo1
Memo1.Modified:=false;//считать, что текст не модифицирован,
//а в заголовок формы добавить спецификацию файла
Form1.Caption:='Form1' + ' ' + S;
end;//if Form1.OpenDialog1.Execute
end;
Рис. 10. Обработчик события открытия файла
Создайте обработчик procedure TForm1.N3Click(Sender: TObject) события щелчка на пункте меню Файл\Открыть…, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду следующее.-
Если редактируемый текст не был изменён (Memo1. Modified ложно), то сразу перейти к диалогу открытия файла, иначе следует предложить пользователю разрабатываемой программы выбрать в диалоге (см. справку по функции MessageDlg) вариант продолжения работы с измененным текстом:
-
I) или сохранить его в файле по выбору, вызвав N6Click(Self) и затем открыть новый файл;
-
II) или не сохранять текст и открыть новый файл;
-
III) или отменить выполнение команды, выйдя из метода по exit и продолжить редактирование текста, как если бы команда открытия файла вообще не вводилась.
(см. текст обработчика рис. 10).
-
Диалог для выбора открываемого файла запускается командой OpenDialog1.Execute (см справку по классу TOpenDialog). Если открываемый файл не был выбран (в окне диалога Открыть была нажата кнопка Отмена), то следует просто выйти из обработчика (вернуться к редактированию прежнего текста), иначе следует загрузить выбранный файл на редактирование, переменной S присвоить спецификацию этого файла и отобразить её в заголовке окна форма, а также свойству Memo1.Modified присвоить значение false – признак того, что загруженный на редактирование текст не изменён.
-
Создайте самостоятельно обработчик procedure TForm1.N7Click(Sender: TObject) события щелчка на пункте меню Файл.Выход, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду следующее. Если редактируемый текст не был изменён (Memo1.Modified ложно), то сразу завершите работу программы оператором close, иначе следует предложить пользователю разрабатываемой программы выбрать в диалоге (см. справку по функции MessageDlg) вариант продолжения работы с измененным текстом:
-
I) или сохранить его в файле (пользователь нажал кнопку Yes) по выбору, вызвав N6Click(Self) и затем завершитm работу программы;
-
II) или не сохранять текст (пользователь нажал кнопку No) и завершить работу программы;
-
III) или отменить выполнение команды (пользователь нажал кнопку Cancel), выйдя из метода по exit и продолжить редактирование текста, как если бы команда завершить работу программы вообще не вводилась.
При выполнении этого пункта задания используя вкладки Index или Search справочной системы Turbo Delpi сначала следует найти справку по функции MessageDlg, затем – допустимые значения её параметров из числа стандартных. Например, вызов функции
MessageDLG('Сохранить файл?',mtInformation,[mbCancel,mbYes,mbNo],0)
обеспечит диалог вида
Справка по работе со справочной системой Turbo Delpi.
-
Запуск справочной системы командой Help/Borland Help.
-
Установка фильтра для отбора справок только по языку Delphi – выбором в раскрывающемся списке Filtered by: строки Language: Delphi.
-
Выбор справки по оглавлению справочной системы (по интересующей теме, подтеме и т.д) выполняют на вкладке Contents (если её нет, то введите команду Viev/Navigation/Contents…).
-
Выбор справки по ключевому слову (по стандартному имени типа, имени подпрограммы и т.п) выполняют на вкладке Index.
-
Выбор разделов справки по содержащемуся в них фразе, слову или части солва – из списка Search Result for…, формирующегося при вводе искомого текста в поле Look for: и нажатия кнопки Search.
-
Создайте самостоятельно обработчик procedure TForm1.N2Click(Sender: TObject) события щелчка на пункте меню Файл.Создать, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду что: - окно Memo1 нужно очистить без всяких условий, - строка S должна стать пустой, то есть не должна представлять имя файла, - в заголовке формы оставить только её название, то есть Form1.
-
Создайте самостоятельно обработчик procedure TForm1.N5Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду следующее. Если строка S пустая, то есть не представляет имя файла, то следует передать управление обработчику команды Файл/Сохранить как…, выполнив оператор N6Click(Self), иначе – сохранить текст Memo1 в файле оператором Memo1.Lines.SaveToFile(S). Затем установить оператором Memo1.Modified:=false признак, что текст в Memo1 не модифицирован.
-
Создайте самостоятельно обработчик procedure TForm1.N4Click(Sender: TObject) события щелчка на пункте меню Файл.Закрыть, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду, что если текст был изменен, то нужно в диалоге (см. справку по функции MessageDlg) выяснить, что желает пользователь. Если он нажмёт кнопук Cancel, то есть хочет вернуться к редактированию текста, то следует просо выйти из обработчика. Если он нажмёт кнопку No, то нужно удалить текст, вывести в заголовок окна название формы ‘Form1’ и присвоить S пустое значение. Если пользователь нажмёт кнопку Yes, то нужно выполнить те же действия, что и при нажатии кноки No, но предварительно сохранить текст оператором Memo1.Lines.SaveToFile(S), если S≠’’, или сохранить текст в файле по выбору, вызвав N6Click(Self), если S=’’.
-
.Задания для самостоятельного выполнения
-
На Упр 1 рассмотреть среду Delphi и разобрать выполнение работ по пунктам 1..5 этого текста, а на Лр 1 создать текстовый редактор по этим пунктам, самостоятельно разработав недостающие части программы.
-
На Упр 2 рассмотреть типовые задачи по текстовым файлам, а на Лр 2 - добавить в меню пункт Работа и его подпункты в соответствии со своим вариантом задания и создать соответствующие им обработчики.
-