Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по Основам алгоритмизации и программи...docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
141.22 Кб
Скачать

24. Компоненты редактирования. Многострочные редакторы. Основные свойства.

14. Многострочные окна редактирования. Компоненты Delphi для редактирования.

Компоненты Memo и RichEdit являются окнами редактирования многострочного текста. Они снабжены многими функциями , свойственными большинству редакторов, например, «горячие» клавиши копирования, вставка, вырезание выделенного объекта.

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

Компонент Richedit работает с текстом в формате RTF. Атрибуты фрагмента текста можно задать свойством SetAttributes.

Основное свойство окон Memo и Richedit – Lines, содержащее текст окна в виде списка строк и имеющее тип Tstrings. Во время выполнения приложения вы можете заносить текст в окно редактирования с помощью методов свойства Lines типа Tstrings.

Весь текст содержится в в свойстве Text. Доступ к отдельной строке текста получают с помощью свойства String [Index:Integer]. Индексы, как и везде в Delphi начинаются с 0.

Memo1.Lines.String[0] – текст первой строки. Однако, если используется свойство Word-Wrap = true, то индексы строк будут меняться в зависимости от размера окна редактирования. Свойство только для чтения Count указывает число строк в тексте.

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

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

Компоненты Delphi для редактирования.

Компонент Edit

Компонент Edit инкапсулирует базовый однострочный элемент редактирования. Этот компонент не имеет свойств Align и Alignment. Свойство Alignment отсутствует, так как текст в соответствующем элементе редактирования всегда выравнивается по левому краю. Свойства Align нет потому, что этот элемент не может (точнее говоря, не должен) увеличивать свой размер до размеров области клиента окна.

Если вам все-таки необходимо выравнивать вправо или центрировать текст в поле редактирования, используйте компонент Memo, установив его высоту равной высоте стандартного компонента Edit Затем установите для свойства Alignment необходимое значение

Старайтесь делать формы по возможности стандартными Если вы сделаете компонент Edit слишком высоким, это может ввести пользователя в заблуждение (он может подумать, что имеет дело с многострочным полем редактирования)

Компонент MaskEdit

MaskEdit представляет собой компонент Edit, к которому добавлен фильтр, или маска вводимых данных. MaskEdit, по существу, не представляет какой-либо элемент управления Windows, а является всего лишь VCL-расшире-нием стандартного элемента редактирования. Маска используется для того, чтобы ограничить вводимые данные определенным диапазоном чисел или символов. Кроме того, маска может содержать специальные символы, которые по умолчанию помещаются в поле редактирования. Например, дата часто записывается в следующем формате: 10/25/97

Маска редактирования, предназначенная для ввода даты, может уже содержать наклонные черты в нужных местах, и пользователю останется только ввести числа. Маска редактирования может ограничивать вводимые символы только цифрами, чтобы исключить возможность ввода пользователем нечислового символа.

Компонент DateTimePicker (находящийся на странице Win32) позволяет вам выбрать дату или время с помощью специализированного компонента редактирования. Когда свойство Kind имеет значение dtkDate, компонент отображает выпадающий календарь, в котором пользователь может выбрать дату. Когда Kind имеет значение dtkTime, компонент DateTimePicker отображает элемент редактирования с несколькими полями, в которых пользователь может установить часы, минуты, секунды и признак AM или РМ. Компонент DateTimePicker предпочтительнее для ввода даты и времени, чем компонент MaskEdit.

Свойство EditMask задает используемую маску. Когда вы нажимаете кнопку с многоточием (...) в столбце Value свойства EditMask, появляется окно редактора маски ввода (Input Mask Editor). Это диалоговая панель позволяет вам выбрать одну из предопределенных масок или создать свою собственную. Вы можете выбрать набор масок нужной вам страны. На рис. 7.3 в окне редактора масок ввода показан набор предопределенных масок для Великобритании.

За подробной информацией относительно создания ваших собственных масок обращайтесь к справочной системе Delphi.

Компонент Memo

Компонент Memo инкапсулирует многострочный элемент редактирования. Свойство Lines — самое важное из свойств этого компонента. Как упоминалось ранее при обсуждения класса TStrings, свойство Lines позволяет вам сохранять содержимое компонента Memo на диске или загружать в этот компонент текст из файла, а также делать много других вещей. Свойство ScrollBars уникально для компонента Memo. Оно позволяет вам установить только горизонтальную линейку прокрутки, только вертикальную или обе вместе. Вы использовали свойство ScrollBars в 6-й день, когда писали программу Scratchpad. Компонент Memo достаточно универсален, и вы, вероятно, будете часто его использовать.

Компонент RichEdit

Компонент RichEdit — самый большой и самый лучший из всех компонентов редактирования. Он базируется на элементе управления Win32. В компоненте RichEdit вы можете изменять шрифты, использовать отступы, задавать полужирный, курсивный или подчеркнутый текст и делать многое другое. Можно сказать, что компонент RichEdit представляет собой маленький текстовый процессор. Компонент RichEdit имеет на удивление мало свойств, используемых на этапе проектирования программ, по сравнению с компонентом Memo. К ключевым свойствам времени выполнения относятся SetAttributes и Paragraph. Компонент RichEdit довольно сложен, но использовать его относительно легко. Полное описание компонента RichEdit содержится во встроенной справочной системе Delphi.