Создание текстового редактора и для работ с текстовыми файла (970968), страница 2
Текст из файла (страница 2)
//перейти к диалогу ФАЙЛ. ОТКРЫТЬ
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 и продолжить редактирование текста, как если бы команда завершить работу программы вообще не вводилась.
-
Создайте самостоятельно обработчик 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=’’.
-
.Задания для самостоятельного выполнения
-
Создать текстовый файл с заданной структурой его строк.
-
Добавить в меню пункт Работа и его подпункты в соответствии со своим вариантом задания и создайте соответствующие им обработчики.
-