Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatica / lab_delphi / Упражнение 3 по Delphi.doc
Скачиваний:
14
Добавлен:
09.04.2015
Размер:
676.35 Кб
Скачать

3 - е упражнение по Delphy

1 - Задание

Составить программу текстового редактора с окном вида рис. 1

Рис. 1.

содержащим:

  1. строку меню с пунктами\подпунктами

    1. Файл\Создать – создание нового документа без сохранения старого.

    2. Файл\Открыть – загрузка в рабочую область текста из файла Задание 3.txtиз текущего каталога без обработки ошибок.

    3. Файл\Сохранить – сохранение текста из рабочей области в файле Задание 3.txtв текущем каталоге.

    4. Файл\Выход – завершение работы программы без сохранения редактированных данных.

    5. Поиск|Замена\Найти – поиск в редактируемом тексте текста, заданного пользователем в поле вводаЧто:окна диалогаНайти(рис. 2). При обнаружении искомого текста его следует выделить, иначе – вывести сообщениеТекст не найден!. Поиск должен проводиться от позиции курсора ввода в направлении к концу текста после нажатия кнопкиНайти далее.Рис. 2. Повторное нажатие этой кнопки должно приводить к поиску очередного вхождения искомого текста в редактируемый.

    6. Поиск|Замена\Заменить – поиск, при необходимости (как при выборе пункта меню Поиск|Замена\ Найти, но с помощью окна диалога Заменить, рис. 3), и замена в редактируемом тексте выделенного фрагмента на текст, введенный пользователем в полеЧем:.Рис. 3.

    7. Поиск|Замена\Заменить все – замена всех вхождений текста из поля Что:окна диалогаЗаменав исходный (не после замены) текст рабочей области от курсора ввода до конца, на текст из поляЧем:, вводимый пользователем.

2- Сведения о среде

Назначение окон

  1. Главное окно – ввод команд с помощью меню и панелей инструментов.

  2. Конструктор формы – создание образа формы с размещенными на ней управляющими элементами (УЭ), а также размещение не визуальных компонентов, используемых, например, для разработки главного или всплывающих меню. Для помещения на форму нового компонента следует щелкнуть на соответствующем значке панели инструментов Палитра компонентов (ComponentPalette, см. рисунок, вкладкиStandard,Additional,Win32,…). Для работы с компонентом в Инспекторе объектов его следует выделить щелчком.

  3. Редактор кода – редактирование текста программы.

  4. Проводник кода – для быстрого (по двойному щелчку) перехода в тексте программы к ссылке на модуль, к описанию переменной, константы, поля в классе формы или к началу тела подпрограммы метода - обработчика события .

  5. Инспектор объектов – задание на вкладке Propertiesсвойств выделенного объекта и создание (двойным щелчком) на вкладкеEventsдля событий объекта новых методов (обработчиков с пустым телом, заполняемым в дальнейшем в Редакторе кода) или назначение (выбором из раскрывающегося списка) событиям объекта уже имеющихся обработчиков.

  6. Обозреватель дерева объектов – для выделения объекта, с которым предстоит работать в Инспекторе объектов.

  7. Окно сообщений об ошибках, вкладка Messages– содержит сообщения об ошибках и расположении в программе соответствующих операторов (мест), для перехода к которым следует сделать двойной щелчок на сообщении.

  8. Окно наблюдения, вкладка WatchList– для отображения в процессе отладки текущих значений переменных или выражений. Появляется по командеRun\AddWatch…. Объединяется с Окном сообщений перетаскиванием на последнее.

Конструирование формы

  1. Добавить стандартный УЭ на форму – щелкнуть на УЭ на вкладке Standard, щелкнуть на форме в месте вставки УЭ.

  2. Удалить УЭ с формы – щелкнуть на нем и нажать клавишу Delete.

  3. Изменить значение свойства УЭ-та – выделить УЭ, щелкнуть на свойстве на вкладке Propertiesв окне Инспектор объектов, ввести или выбрать нужное значение в строке этого свойства.

  4. Добавить для УЭ-та обработчик события - выделить УЭ, на вкладке Eventsв окне Инспектор объектов или сделать двойной щелчок на событии, или щелкнуть на событии и ввести или выбрать нужное значение в его строке.

  5. Удалить обработчик события – удалить текст обработчика и его заголовок в описании типа класса формы, а также очистить строку соответствующего события в окне Инспектор объектов.

Выполнение и отладка программы

  1. Запуск программы –или Run\Runили кнопкаилиF9

  2. Выполнить до курсора – Run\RuntoCursorилиF4

  3. Выполнить строку с заходом в п\п – или Run\TraceInto, или кнопка, илиF7

  4. Выполнить строку без захода в п\п – или Run\TraceOver, или кнопка, илиF8

  5. Завершить отладку – Run\Program Reset или Ctrl+F2

  6. Отобразить окно наблюдения - Run\AddWatch… или нажатьCtrl+F5, ввести имя переменной или выражение, нажатьOK. Появившееся окноWatchListможно отбуксировать к нижней части окна редактора кода и объединить с окномMessages, как показано на рисунке. Чтобы добавить в окно наблюдения новую переменную, можно установить на ней курсор в окне редактора кода, активизировать окно наблюдения, сделать на нем двойной щелчок и нажать кнопкуOK.

  7. Установить точку останова – щелкнуть в окне редактора кода на сером поле перед строкой, на которой д.б. эта точка (см. рисунок).

  8. Убрать точку останова – повторить действия п. 7.

3 – Сведения из Паскаля и Delphiдля выполнения задания 3

Тип tMemo – многострочный редактор

Свойства

Text:string– все содержимое редактора, включая символы #13#10, вводимые при нажатии клавишиEnter.

Lines:TStrings – в простейшем случае, как в этом задании - массив строк, индексация с 0.

WantReturns:Boolean– если равноTrue, то при нажатии клавишиEnterвводятся символы #13#10, иначе –нет никакой реакции.

Modified:Boolean– если равноTrue, значит текст был модифицирован после

SelStart:Integer- содержит позицию первого выделенного символа в тексте (индексация идет с нуля). Если текст не выделен, тоSelStartпредставляет позицию курсора. Для выделения части текста сначала установитеSelStartкурсор в начало диапазона. а затем установитеSelLengthна длину выделения.

SelLength:Integer– длина выделения.

SelText:string – выделенный текст.

HideSelection:Boolean– определяет, будет ли отображаться инверсным цветом выделенный текст когда к УЭ-ту перейдет фокус от другого УЭ-та. Установите это свойство в False для показа (обеспечения инверсного отображения) выделенного текста даже когда УЭ-т не имеет фокуса, иначе показ выделенного будет только, когда УЭ имеет фокус.

Это свойство влияет только на показ, но не на выделение.

Методы (применимы к объектам типа TStrings, к которым относится свойство Lines многострочного редактора)

LoadFromFile (const FileName:string) - Заполнение списка строками текста из указанного файла. ВыполнитеLoadFromFileдля заполнения списка объектного типаTStringsиз файла, заданного параметромFileName. Каждая строка файла, заканчивающаяся символом возврата каретки или перевода строки, добавляется в качестве отдельной строки в список.

SaveToFile(const FileName:string) - Сохраняет строки списка в указанном файле вместе с их разделителями (#13#10).

3 - Выполнение задания

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

Создание проекта и макета формы (рис. 5)

Рис. 5.

  1. Запустите Delphi 6. При этом автоматически будет создана форма с именемForm1. ЕслиDelphi 6уже запущена и использовалась для создания другой программы, то следует ввести командуFile\New\Application.

  2. Сохраните программу в новом подкаталоге Программа 3рабочего каталога командойFile\Save All(Delphi 6последовательно предложит сохранить программу в файлахProject1.dpr и Unit1.pas. Не меняйте эти имена. В дальнейшем, еслиDelphi 6открывается для загрузки программы на редактирование, выбирайте файлProject1.dprили, после открытияDelphi 6,используйте командуFile\Open Projectдля этого файла). В процессе работы не забывайте периодически сохранять файлы программы щелчком на кнопкепанели инструментовStandard.

  3. Щелчком активизируйте окно формы, в диалоге (в окне диалога) Инспертора объектов (Object Inspector)на вкладкеPropertiesщелкните на полеCaptionи введите заголовок формыЗадание 3.

  4. Измените размеры формы мышкой или заданием значений в свойствах Height и Width в соответствии с рис. 5.

  5. Разместите на форме УЭ-т ‘многострочный редактор текста’ Memo (по умолчанию он получит имяMemo1) и для его свойстваAlignвыберите из раскрывающегося списка значениеalClient, в результате чегоMemo1займет всю клиентскую область формы, то есть всё, кроме ее рамки, заголовка и строки меню.

  6. Для свойства ScrollBarУЭ-таMemo1выберите из раскрывающегося списка значениеssBoth, в результате чего у него появится две полосы прокрутки.

  7. Создайте заготовку главного меню формы MainMenu1 (см. рис.5), выполнив следующие действия:

    1. Разместите на форме УЭ-т MainMenu.

    2. Двойным щелчком на УЭ-те MainMenu1вызовите окно Редактора меню, в котором будет выделено поле первого пункта строки меню.

    3. Свойству Captionпервого пункта строки меню дайте значение ‘Файл’, щелкните под ним и свойствуCaptionпервого пункта его подменю дайте значение ‘Создать’, нажмитеEnterи свойствуCaptionвторого пункта подменю дайте значение ‘Открыть’, нажмитеEnterи свойствуCaptionтретьего пункта подменю дайте значение ‘Сохранить’, нажмитеEnterи свойствуCaptionчетвертого пункта подменю дайте значение ‘Выход’.

    4. Щелчком выделите второе поле строки меню (оно обведено пунктиром справа от первого пункта), его свойству Captionдайте значение ‘Поиск|Замена’ и, подобно предыдущему, создайте пункты его подменю с текстами ‘Найти’, ‘Заменить’, ‘Заменить все’.

    5. Щелчком выделите третье поле строки меню (оно обведено пунктиром справа от первого пункта), его свойству Captionдайте значение ‘Выход’ и закройте окно Редактора меню.

  8. Разместите на форме УЭ-тFindDialog1, представляющий диалоговое окноНайти (рис. 6), для чего:

    1. На вкладке Dialogsпанели управления Палитра компонентов (ComponentPalette) щелкните на значкеFindDialog, а затем рядом со значком меню в окне формы.

    2. Введите в поле свойства FindTextкакой-либо текст (например,кс), который будет появляться в полеЧто:в момент открытия окнаНайтии использоваться на первых шагах отладки.

  9. Разместите на форме УЭ-т ReplaceDialog1, представляющий диалоговое окноНайти (рис. 7), для чего:

    1. На вкладкеDialogsпанели управления Палитра компонентов (ComponentPalette) щелкните на значкеReplaceDialog, а затем рядом со значком меню в окне формы.

    2. Введите в поля свойств FindTextиReplaceText как-либо текстs(например,ксиc), которые будет появляться в поляхЧто:иЧем: в момент открытия окнаЗаменитьи использоваться на первых шагах отладки.

Соседние файлы в папке lab_delphi