Укажите свойства компонента memo

Укажите свойства компонента memo

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

В некоторых случаях для ввода массива можно использовать компонент Memo. Компонент Memo позволяет вводить текст, состоящий из достаточно большого количества строк, поэтому его удобно использовать для ввода символьного массива. Компонент Memo добавляется в форму обычным образом. Значок компонента находится на вкладке Standard (рис. 5.3).

В табл. 5.3 перечислены некоторые свойства компонента Memo.

Таблица 5.3. Свойства компонента Memo

Имя компонента. Используется в программе для доступа к свойст-

Текст, находящийся в поле Мето. Рассматривается как единое це-

Текст, находящийся в поле Меню. Рассматривается как совокуп-

ность строк. Доступ к строке осуществляется по номеру

Количество строк текста в поле Меню

Расстояние от левой границы поля до левой границы формы

Расстояние от верхней границы поля до верхней границы формы

Шрифт, используемый для отображения вводимого текста

Признак наследования свойств шрифта родительской формы

При использовании компонента Memo для ввода массива значение каждого элемента массива следует вводить в отдельной строке и после ввода каждого элемента массива нажимать клавишу .

Получить доступ к находящейся в поле Memo строке текста можно при помощи свойства Lines, указав в квадратных скобках номер нужной строки (строки нумеруются с 0).

Следующая программа, текст которой приведен в листинге 5.5, демонстрирует использование компонента Memo для ввода символьного массива.

Основной цикл процедуры ввода символьного массива из компонента Memo может выглядеть так:

Lines — свойство компонента Memo, представляющее собой массив, каждый элемент которого содержит одну строку находящегося в поле Memo текста.

Форма программы приведена на рис. 5.4. Помимо поля Memo она содержит командную кнопку (Buttonl), при щелчке на которой выполняется ввод значений элементов массива из поля Memo.

Рис. 5.4. Диалоговое окно приложения Ввод массива

Листинг 5.5. Ввод массива строк из компонента Memo unit fr_memo_; interface

procedure ButtonlClick(Sender: TObject); private < Private declarations >public

var Forml: TForml; implementation

<$R *.DFM>procedure TForml.ButtonlClick(Sender: TObject); const

SIZE=5; // размер массива

for i:=1 to n do a[i]:=Forml.Memol.Lines[i-1]; // строки Memo пронумерованы с нуля

Основную работу выполняет процедура TForml.Buttoniciick, которая сначала проверяет, есть ли в поле Memol текст. Если текст есть (в этом случае значение свойства Lines.Count больше нуля), то процедура сравнивает количество введенных строк и размер массива. Если это количество превышает размер массива, то программа изменяет значение п, тем самым подготавливает ввод только первых size строк.

На рис. 5.5 приведен вид диалогового окна приложения Ввод массива. После щелчка командной кнопки Ввод появляется окно (рис. 5.6), которое содержит значения элементов массива, полученные из Memo-поля.

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

Cобытие OnChange

При любых изменениях в содержимом редактора возникает событие OnChange типа TNotifyEvent, которое можно использовать для проверки текста, содержащегося в поле ввода, например, для оперативного контроля правильности набора данных.

Свойство Modified

Кроме того, при изменении содержимого редактора свойство Modified типа Boolean принимает значение True. Это свойство можно использовать, в частности, для проверки того, сохранена ли редактируемая информация на диске:

Cвойство MaxLength

Для указания максимального количества символов, которые допускается вводить в поле редактирования, можно использовать свойство MaxLength типа Integer. При этом ограничение на длину текста относится к вводу со стороны пользователя, программно можно ввести количество символов большее, чем задано в свойстве MaxLength. По умолчанию длина вводимого пользователем текста не ограничена (MaxLength = о).

Свойства AutoSelect, SelStart, SelLength и SelText

Свойства AutoSelect, SelStart, SelLength и SelText позволяют работать с выделенным фрагментом текста. Эти свойства доступны не только для чтения, например, в случае анализа текста, выделенного пользователем, но и для записи, когда фрагмент выделяется программно, скажем, в процессе поиска или замены текста.

Читайте также:  Wharfedale vardus 400 отзывы

Свойство AutoSelect типа Boolean определяет, будет ли автоматически выделен текст в поле редактирования, при получении последним фокуса ввода (по умолчанию имеет значение True).

Значение свойства SelText типа String определяет выделенный фрагмент. При отсутствии выделенного текста значением свойства является пустая строка.

Свойства SelStart и SelLength типа Integer задают начальную позицию в строке (отсчет символов в строке начинается с нуля) и длину выделенного фрагмента соответственно.

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

Свойство HideSelection

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

Если свойство HideSelection имеет значение True (по умолчанию), то текст не будет выглядеть выделенным при переходе фокуса на другой элемент управления.

Рассмотрим несколько операций с выделенным текстом:

В компоненте Memo1 6 символов, начиная с 19-го, заменяются строкой abcdefgh. В компоненте Edit1 осуществляется поиск строки qwerty. В случае удачного поиска найденный фрагмент выделяется.

Методы SelectAll, CopyToClipBoard и CutToClipBoard

Кроме свойств, для операций с выделенным фрагментом текста используются также методы SelectAll, CopyToClipBoard и CutToClipBoard.

Метод SelectAll выделяет весь текст в элементе редактирования.

Метод CopyToClipBoard копирует, a CutToClipBoard вырезает в буфер обмена выделенный фрагмент текста. Например, инструкция Memo1.CutToClipBoard — вырезает выделенный фрагмент и помещает его в буфер обмена.

Метод PasteFromcСlipBoard

Для работы с буфером обмена имеется также метод PasteFromcСlipBoard, вставляющий текст из буфера обмена в текущую позицию курсора в поле редактирования. Если имеется выделенный фрагмент, то вставляемый текст заменяет его.

Событие OnExit

Для проверки текста, введенного в поле редактирования, можно использовать событие OnExit, возникающее при окончании ввода, т. е. при потере этим элементом фокуса ввода. В качестве примера рассмотрим следующую процедуру:

Здесь для нового товара в редактор Edit1 вводится артикул, который не должен быть равен 123 или 456 (в реальных приложениях проверку реализовать сложнее, т. к. артикул должен отвечать более сложным требованиям, например, быть уникальным и отличаться от уже имеющихся). При окончании ввода в обработчике события OnExit выполняется проверка артикула. Если он набран неверно, то выдается предупреждение, а редактор Edit1 снова получает фокус.

Cвойства ReadOnly и Enabled

Основное назначение полей редактирования — ввод и изменение текста, однако их можно использовать и для отображения нередактируемого текста, например, при выводе справочной информации. С этой целью нужно установить соответствующие значения свойств ReadOnly или Enabled. Оба способа обеспечивают отображение нередактируемого текста, однако имеют свои недостатки.

В случае использования свойства ReadOnly, например, следующим образом:

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

Курсор не отображается, если свойство Enabled используется так:

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

Поэтому на практике для отображения нередактируемого текста чаще используется свойство ReadOnly.

Ø taCenter – выровнять по центру

Ø taLeftJustify – прижать текст к левому краю компонента

Ø taRightJustify – прижать текст к правому краю компонента

  • Anchors – позволяет закрепить края компонента к краям родителя таким образом, чтобы при изменении размеров родителей расстояние между заданными краями оставалось постоянным.

Ø akLeft – закрепление расстояния от левого края компонента до левого края родителя

Читайте также:  Мовипреп отзывы очищение кишечника для колоноскопии

Ø akTop – закрепление расстояния от верхнего края компонента до верхнего края родителя

Ø akRight – закрепление расстояния от правого края компонента до правого края родителя

Ø akBottom – закрепление расстояния от нижнего края компонента до нижнего края родителя

  • BevelEdges – задает видимость сторон рельефной рамки:

Ø beLeft – отображение левой стороны

Ø beTop – отображение верхней стороны

Ø beRight – отображение правой стороны

Ø beBottom – отображение нижней стороны

  • BevelInner – определяет внутренний скос рельефной рамки:

Ø bvNone – скос отсутствует

Ø bvLowered – скос внутрь

Ø bvRaised – скос наружу

Ø bvSpace – скос заменяется отступом

  • BevelKind – определяет вид рельефной рамки:

Ø bkNone – рамка отсутствует

Ø bkTile – рамка с четкими скосами

Ø bkSoft – рамка со сглаженными скосами

Ø bkFlat – плоская рамка (без скосов)

  • BevelOuter – определяет внешний скос рельефной рамки:

Ø bvNone – скос отсутствует

Ø bvLowered – скос внутрь

Ø bvRaised – скос наружу

Ø bvSpace – скос заменяется отступом

  • BorderStyle – определяет вид рамки для многострочного поля ввода Memo:

Ø bsNone – рамка отсутствует

Ø bsSingle – обычная рамка

  • Constraints – ограничение размеров компонента. Значение подсвойств равные нулю отключают ограничения:

Ø MaxHeight – установка максимальной высоты компонента

Ø MaxWidth – установка максимальной ширины компонента

Ø MinHeight – установка минимальной высоты компонента

Ø MinWidth – установка минимальной ширины компонента

  • DragKind – определяет способы использования мыши. Для технологии Drag&Dropзначение необходимо установить dkDrag,а для технологии Drag&Dockзначение необходимо установить dkDock
  • DragMode – определяет способ обработки событий, возникающих при перетаскивании объекта (OnDockDrop, OnDockOver, OnEndDock, OnUnDock и др.) Значение dmAutomatic означает, что на всех стадиях перетаскивания нужные функции вызываются без участия программиста, при значении dmManual все необходимые вызовы функций нужно делать самому.
  • HelpType – определяет, каким образом для объекта будет задан раздел файла справки.

Ø htContext – номер раздела справки содержится в свойстве HelpContext.

Ø htKeyword – тему файла справки определяет свойство HelpKeyword.

  • HelpContext – определяет номер выводимого раздела справки.
  • HelpKeyword – определяет тему в файле справки.
  • HideSelection – определяет выделение текста при потере многострочным полем редактирования фокуса ввода:

Ø True – при потере компонентом фокуса ввода выделение текста снимается (значение по умолчанию)

Ø False – текст остаётся выделенным при потере компонентом фокуса ввода

  • ImeMode– определяет режим работы (imChinese, imHira, по умолчанию – imDontCare) редактора способа ввода (Input Method Editor, IME). Редакторы IMЕ представляют собой специально устанавливаемое в операционной системе программное обеспечение, позволяющие приспособить стандартную раскладку клавиатуры для символьных языков для ввода нестандартных символов (иероглифов)
  • ImeName– определяет имя редактора способа вода (IME)
  • Lines – содержит отображаемый компонентом текст в виде списка строк. Задание на этапе проектирования значений свойства осуществляется в редакторе строк, вызываемом кликом в правой колонке окна Object Inspector напротив свойства Lines.
  • MaxLength – определяет максимальное количество символов, которое пользователь может ввести. Значение равное нулю позволяет вводить текст неограниченной длины.
  • OEMConvert – определяет возможность преобразования символов из ANSI в OEM-кодировку (и наоборот) при обработке текстов в формате MS-DOS:

Ø True – преобразование выполняется

Ø False – преобразование не выполняется

  • PopupMenu – позволяет выбрать контекстное меню поля редактирования. Это меню вызывается нажатием правой кнопки мыши
  • ReadOnly – определяет возможность изменения (редактирования) отображаемого текста:

Ø True – отображаемый текст нельзя редактировать

Ø False – редактирование отображаемого текста возможно

  • ScrollBars – определяет наличие в многострочном поле ввода Memo полос прокрутки:

Ø ssNone – полосы прокрутки отсутствуют;

Ø ssHorizontal – только горизонтальная полоса прокрутки;

Ø ssVertical – только вертикальная полоса прокрутки;

Ø ssBoth –горизонтальная и вертикальная полосы прокрутки

  • WantReturns – определяет значение (функциональное поведение) клавиши Enter:
Читайте также:  Реформировать из пдф в джипег

Ø True – нажатие клавиши Enter вызывает переход на новую строку (ввод в текст символа окончания строки)

Ø False – нажатие клавиши Enter ассоциируется с нажатием стандартной кнопки окна диалога, а для перехода на новую строку применяется сочетание клавиш Ctrl+Enter

  • WantTabs – определяет значение (функциональное поведение) клавиши Tab:

Ø True – нажатие клавиши Tab вызывает ввод в текст символа табуляции

Ø False – нажатие клавиши Tab приведёт к передаче фокуса ввода следующему компоненту, а для ввода в текст символа табуляции применяется сочетание клавиш Ctrl+Tab

  • WordWrap – определяет допустимость переноса слов на новую строчку при превышении ширины компонента:

Ø True – перенос не вмещающейся части текста на новую строку разрешён (значение по умолчанию). Однако в этом случае необходимо чтобы свойство ScrollBars не было установлено в ssHorizontal или ssBoth

Ø False – перенос части теста на новую строку запрещён

  • CaretPos: TPoint – содержит координаты мигающего текстового курсора относительно границ клиентской области компонента
  • ­­­CanUndo – содержит значение true, если сделанные пользователем изменения в значении свойства Lines можно убрать методом Undo, и false – если невозможно
  • Modified – содержит значение true, если текст был изменен, и false, если текст не редактировался
  • SelLenght – содержит длину выделенной части текста
  • SelStart – содержит номер первого символа выделенной части текста
  • SelText – содержит выделенную часть текста
  • Text– содержит значение свойства Lines в виде одной длинной строки, в которой границы отдельных строк определяются символами EOL (End Of Line) – CR/LF (не отображаются, но переводят текст на новую строку)

Методы компонента Memo:

  • procedure Clear – очищает содержимое многострочного поля редактирования Memo
  • procedure ClearSelection – удаляет выделенный текст
  • procedure ClearUndo – очищает буфер метода Undo, т.е. удаляет историю изменений, делая отмену изменений с помощью метода Undo невозможной
  • procedure CopyToClipboard – копирует выделенный текст в буфер обмена
  • procedure CutToClipboard – копирует выделенный текст в буфер обмена, после чего удаляет выделенный текст из компонента
  • function GetTextBuf (Buffer: PChar; BufSize: Integer): Integer– копирует весь текст из компонента Memo в Buffer
  • function GetSelTextBuf (Buffer: PChar; BufSize: Integer): Integer – копирует не более BufSize символов выделенного текста в буфер Buffer
  • procedure PasteFromClipboard – заменяет выделенный текст содержимым буфера обмена, а если нет выделенного текста, копирует содержимое буфера обмена в позицию текстового курсора
  • procedure SelectAll – выделяет весь текст
  • procedure SetSelTextBuf (Buffer: PChar) – заменяет выделенный текст содержимым буфера Buffer, а если нет выделенного текста, копирует содержимое буфера Buffer в позицию текстового курсора
  • procedure SetTextBuf (Buffer: PChar) – копирует текст из буфера Buffer в компонент Memo
  • procedure Undo – восстанавливает текст в том виде, в котором он был перед последним получением компонентов фокуса ввода

Методы свойства Lines:

· function Add (const S: string) – добавляет строку S в конец списка строк компонента Memo

· procedure Clear – очищает содержимое многострочного поля редактирования Memo

· procedure Delete (Index: Integer) – удаляет из многострочного поля редактирования Memo строку с номером Index

· procedure Insert (Index: Integer; const S: string) – вставляет строку S под номером Index в многострочное поле редактирования Memo

· procedure LoadFromFile (const FileName: String) – заполняет строки многострочного поля редактирования Memo текстом из указанного файла FileName

· procedure SaveToFile (const FileName: String) – сохраняет строки в файле с указанным именем FileName

| следующая лекция ==>
Свойства компонента PopUpMenu | Свойства компонента RadioButton

Дата добавления: 2015-07-02 ; Просмотров: 368 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Ссылка на основную публикацию
Тор браузер андроид 4pda
Браузер Тор доступен не только для компьютеров и ноутбуков под управлением различных операционных систем. Разработчики обеспокоились и его выпуском для...
Телефон греется и тормозит что делать
Почему тормозит устройство на Andro >Прежде чем перейти непосредственно к решению проблем, стоит указать на их причины. Зная о том,...
Телефон завис на загрузке андроид
В результате поломки аппаратной части или сбоя в работе ОС любой Android-смартфон может перестать реагировать на кнопку включения. Частой можно...
Тор браузер без установки
Tor Browser (ранее он назывался Tor Browser Bundle) – наиболее защищенный интернет-обозреватель из представленных в настоящий момент. Ввиду высокой популярности...
Adblock detector