- •Лабораторная работа №1 Delphi. Форма, компоненты Button и Memo
- •Лабораторная работа №2 Delphi. Формы. Рисование линий и прямоугольников
- •Лабораторная работа №3 Delphi. Рисование графиков
- •Лабораторная работа №4 Delphi. Компоненты Image, OpenPictureDialog, SavePictureDialog. Рисование и сохранение графической информации
- •Лабораторная работа №5 Delphi. Компоненты MainMenu, Memo Создание и сохранение текстовой информации
- •Создание структуры меню.
- •Справка. Если не добавить что-либо в шаблон обработчика события, то он и соответствующий заголовок метода в объявлении класса tForm1 будут удалены из текста программы при её подготовке к выполнению.
- •Добавление переменных, представляющих текущее состояние процесса обработки данных.
- •Создание обработчиков событий.
- •Лабораторная работа №6 Delphi. Компоненты диалога, RichEdit. Создание, редактирование, изменение стиля, сохранение и поиск текстовой информации
- •1. Меню
- •2. Работа с файлами
- •3. Шаблоны и действия
- •4. Панель инструментов
- •Лабораторная работа №7 Delphi. Компоненты ListBox, ComboBox, StringGrid Создание и использование
- •Лабораторная работа №8 Delphi. Страничные раскладки. Создание их и использование
- •Лабораторная работа №9 Общие представления. Графика
Добавление переменных, представляющих текущее состояние процесса обработки данных.
procedure TForm1.FormCreate(Sender: TObject);
begin
//Обработчик события СОЗДАНИЯ ФОРМЫ
//При создании формы удалить текст из
//Memo1 - рабочей области редактора
Memo1.Clear;
//заполнить рабочей областью редактора
//(то есть развернуть элемент Memo1 во)
//всю клиентскую область окна формы
Memo1.Align:=alClient;
procedure TForm1.N6Click(Sender: TObject);
begin
//Обработчик щелчка на пункте меню ФАЙЛ.СОХРАНИТЬ КАК...
//Открытие окна диалога для выбора папки и
//задания имени и типа файла, в котором следует
//сохранить текст из Memo1-рабочей области редактора
if Form1.SaveDialog1.Execute then begin
//Если файл выбран,
//то S присвоить спецификацию файла,
S:=SaveDialog1.FileName;
Справка. Эти переменные используются разными методами и их объявление можно дать либо внутри объявления класса, либо в разделе var в интерфейсной части, либо в разделе var в части реализации.
Добавьте в раздел реализации объявление переменной 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
//Обработчик щелчка на пункте меню ФАЙЛ.ОТКРЫТЬ...
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:;//не сохранять текст в файле и
Создайте обработчик 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)
обеспечит диалог вида
