Многострочные окна редактирования Memo и RichEdit
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Компоненты Memo и RichEdit являются окнами редактирования многострочного текста.

В компоненте Memo формат (шрифт, его атрибуты, выравнивание) одинаков для всего текста и определяется свойством Font.

Компонент RichEdit работает с текстом в обогащенном формате RTF. При желании изменить атрибуты вновь вводимого фрагмента текста вы можете задать свойство SelAttributes. Это свойство типа TTextAttributes, которое в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других.

В компоненте имеется также свойство DefAttributes, содержащее атрибуты по умолчанию. Эти атрибуты действуют до того момента, когда изменяются атрибуты в свойстве SelAttributes.

Но значения атрибутов в DefAttributes сохраняются и в любой момент эти значения могут быть методом Assign присвоены атрибутам свойства SelAttributes, чтобы вернуться к прежнему стилю.

Свойство DefAttributes доступно только во время выполнения. Поэтому его атрибуты при необходимости можно задавать, например, в обработчике события OnCreate.

За выравнивание, отступы и т.д. в пределах текущего абзаца отвечает свойство Paragraph типа TParaAttributes. Этот тип в свою очередь имеет ряд свойств:

Alignment Определяет выравнивание текста. Может принимать значения taLeftJustify (влево), taCenter (по центру) или taRightJustify (вправо).
FirstIndent Число пикселей отступа красной строки.
Numbering Управляет вставкой маркеров, как в списках. Может принимать значения nsNone — отсутствие маркеров, nsBullet — маркеры ставятся.
LeftIndent Отступ в пикселях от левого поля.
RightIndent Отступ в пикселях от правого поля.
TabCount Количество позиций табуляции.
Tab Значения позиций табуляции в пикселях.

Значения подсвойств свойства Paragraph можно задавать только в процессе выполнения приложения, например, в событии создания формы или при нажатии какой-нибудь кнопки. Значения подсвойств свойства Paragraph относятся к тому абзацу, в котором находится курсор. Например, каждый из следующих операторов осуществит соответственное выравнивание текущего абзаца:

RichEdit1.Paragraph.Alignment:=taLeftJustify; // Влево RichEdit1.Paragraph.Alignment:=taCenter; // По центру RichEdit1.Paragraph.Alignment:=taRightJustify;// Вправо

Следующий оператор приведет к тому, что текущий абзац будет отображаться как список, т.е. с маркерами:

RichEdit 1. Paragraph . Numbering := nsBullet ;

Уничтожение списка в текущем абзаце осуществляется оператором

RichEdit 1. Paragraph . Numbering := nsNone ;

Свойства TabCount и Tab имеют смысл при вводе текста только при значении свойства компонента WantTabs = true. Это свойство разрешает пользователю вводить в текст символ табуляции. Если WantTabs = false, то нажатие пользователем клавиши табуляции просто переключит фокус на очередной компонент и символ табуляции в текст не введется.

Остановимся на общих свойствах окон редактирования Memo и RichEdit.

Свойство ScrollBars определяет наличие полос прокрутка текста в окне. По умолчанию ScrollBars = ssNone, что означает их отсутствие. Пользователь может в этом случае перемещаться по тексту только с помощью курсора. Можно задать свойству ScrollBars значения ssHorizontal, ssVertical или ssBoth, что будет соответственно означать наличие горизонтальной, вертикальной или обеих полос прокрутки.

В качестве примера на рисунке приведен пример текстового редактора, использующего описанные выше свойства компонента RichEdit. Текст в окне редактора частично поясняет атрибуты шрифта, использованные при его написании.

Основное свойство окон Memo и RichEdit — Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многоточием около свойства Lines в окне Инспектора Объектов.

Во время выполнения приложения вы можете заносить текст в окно редактирования с помощью методов свойства Lines типа TStrings.

Весь текст, представленный одной строкой типа String, внутри которой используются разделители типа символов возврата каретки и перевода строки, содержится в свойстве Text.

Доступ к отдельной строке текста вы можете получить с помощью свойства Strings[Index: Integer]. Индексы начинаются с 0. Так что Memo1.Lines.Strings[0] — это текст первой строки.

Свойство только для чтения Count указывает число строк в тексте.

Для очистки текста в окне надо выполнить процедуру Clear. Этот метод относится к самому окну, а не к его свойству Lines.

Для занесения новой строки в конец текста окна редактирования можно воспользоваться методами Add или Append свойства Lines. Для загрузки текста из файла применяется метод LoadFromFile. Сохранение текста в фале осуществляется методом SaveToFile.

Загрузка в окно Memo1 текста из файла может осуществляться командой

Memo1.Lines.LoadFromFile ('text.txt');

Сохранение текста в файле может осуществляться командой

Memo1.Lines.SaveToFile('text.txt');

Свойство SelStart компонентов Memo и RichEdit указывает позицию курсора в тексте или начало выделенного пользователем текста. Свойство CaretPos указывает на запись, поле X которой содержит индекс символа в строке, перед которым расположен курсор, а поле Y — индекс строки, в которой находится курсор. Учитывая, что индексы начинаются с 0, значения Memo1.CaretPos.Y+1 и Memо1.CaretPos.X+1 определяют соответственно номер строки и символа в ней, перед которым расположен курсор. В редакторе на рисунке именно эти значения (только не для Memo, а для RichEdit) использованы, чтобы отображать в строке состояния позицию курсора.

 

Содержание отчета:

1. Наименование, тема, цель работы.

2. Краткий конспект базового материала.

3. Скриншоты выполнения практической части.

4. Практическое занятие 3.

5. Выводы по работе.

 

Контрольные вопросы:

1. Дайте характеристику компонентов отображения.

2. Создание графического интерфейса объекта.

3. Событийные процедуры.

4. Использование кнопок.

5. Изменение свойств компонентов отображения.

6. Свойство Font. Отображение текста в надписях.

7. Однострочные и многострочные окна редактирования.

 

 

Цель работы: изучить среду визуального программирования Delphi. Дать понятие визуального конструирования формы с использованием компонентов редактирования и динамическое изменение свойств компонентов

Ход работы

1. На вашей форме после запуска должна появиться следующая информация: Заголовок формы – «Лабораторная работа 15». На форме – ваши ФИО, группа и кнопка Выход.

Заметки:

? – нельзя менять Form1 в параметре Name. Значение свойства Name для любых компонентов является идентификатором и используется для обращения к объекту в коде программы. Вам пока не надо менять стандартные значения.

 

 

 


 

? – цвет фона и шрифта не изменяется для компонента Button вкладки Standard.

 

Close не обязательно писать с заглавной буквы. Delphi понимает команды – английские слова, в любом сочетании, например: заглавная, прописная, заглавная … и т.д.



Сохранение проекта

Возможны как минимум три варианта:

  1. Меню File, строка Save All с подсказкой горячих клавиш Shift+Ctrl+S;
  2. Щёлкнуть по иконке двух дискет ;
  3. Shift+Ctrl+S.

После любого из этих вариантов в первый раз Delphi попросит вас сохранить с начала форму – Unit1 c расширением pas, а затем проект – Project1 c расширением dpr ( D elphi pr oject ). В дальнейшем запросов на ввод имени проекта и формы не будет. Кнопка двух дискет будет недоступной, если не было никаких изменений ни в проекте, ни на/в форме. Если кнопка двух дискет будет доступна, следовательно, перед запуском нужно сохранить изменения – это хороший стиль отладки.

? – Сохраняйте каждый свой проект в отдельной папке.

? – Не переименовывайте пока стандартные названия проекта и форм.

Дата: 2019-05-28, просмотров: 238.