реклама
Бургер менюБургер меню

Виталий Донцов – Программирование для Android и работа с датчиками в среде Delphi 11 (страница 10)

18

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

8.5. ListView

FireMonkey введен еще один компонент для просмотра списка, который можно использовать для хранения и представления различных типов элементов – ListView.

Элементы в виде списка могут иметь одну или несколько функций:

Заголовок или текст (используя элемент Item. Text);

Связанное изображение (с помощью Item.Bitmap);

Значок, с помощью Items. Appearance;

Прикрепленная графическая или текстовая кнопка, с помощью Item. ButtonText.

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

В ListView есть режим редактирования, в котором можно выбрать один или несколько элементов.

Элементы в TListView можно добавлять либо путем привязки к источнику данных, либо с помощью кода: ListView.Items.Add для добавления в конец, или внедрить внутрь: ListView.Items.Insert.

Удалить строку: TListView.Items.Delete (i);

Изменить текст в выбранной ячейке на текст в Edit:

ListView1.Items.Item [n]:= Edit1.Text;

Число в строку: i.ToString;

Имеется уточняющее свойство: Detail;

Для заполнения, вставки, сортировки списка используют:

ListView1.BeginUpdate…..EndUpdate.

Свойство OnFilter позволяет тонко обращаться с элементами.

Свойство ItemAppearance (в Onject Inspector) позволяет определить: колонтитулы, внешний вид и поведение компонента:

подсвойство ItemAppearance – пояснительный рисунок, наличие основного и детализированного текста, наличие управляющей кнопки в режиме просмотра;

подсвойство ItemEditAppearance – поведение элемента в режиме редактирования.

В коде программы вместо этих свойств используют: ItemAppearanceName и ItemEditAppearanceName.

8.6. МНОГОСТРОЧНЫЙ ТЕКСТОВОЙ КОМПОНЕНТ Memo

За неимением компонента RichEdit его функции исполняет Memo, имеющая практически те же свойства и действия (кроме форматирования текста); по внешнему виду это простое белое поле.

Нужно установить свой стиль шрифта (в TextSettings, отменив все в StyledSettings); CheckSpelling определяет возможность проверки орфографии; обязательно укажите в настройках WordWrap = true, чтобы не вмещающийся в строчку текст автоматически переходил на строчку вниз. Прокрутка не вмещающегося на экране текста установлена в свойствах автоматически.

Для простого вывода информации нужно установить запрет редактирования: ReadOnly:= true.

Основное свойство компонента: Lines, в которое вводится текст при создании компонента или программно (что является основным):

– текст добавит команда Memo1.Lines.Add («Вводимый текст»);

– получить строчку текста по индексу: str:= memo1.Lines [n];

– скопировать весь текст:

Memo1.SelectAll; Memo1.CopyToClipboard;

Компонент Memo удобен также как база данных. Он может хранить большое количество информации, а заполнить его очень просто, скопировав в Lines в Object inspector при создании компонента строчки, созданные в обычном Word, при этом шрифт сам примет все значения, установленные для Memo.

Можно достаточно просто установить обмен информацией с компонентом Таблица, поставив его Cells [] в соответствие строкам Memo (счет начинается с 0 для обоих компонентов).

Для того, чтобы придать данным из Memо 2-мерный тип, характерный для Таблицы, можно отделить друг от друга части текста в строке, предназначенные для строк (или колонок) Таблицы, например (;), а при загрузки Таблицы использовать функции работы с текстом: копирования части текста до определенного элемента (;), позицию этого элемента, удаление предыдущей части текста для копирования следующей части текста.

Но если в Delphi 7 количество строк в Memo может составлять несколько тысяч, то в ситуации с Android число строк может быть ограничено; при этом можно сохранить и большее число строк, но при обращении Memo1.Lines [101] и более может происходить сбивка адресации и неуправляемые действия.

Для просмотра строчек вне видимости, автоматически предусмотрены установки по скроллингу.

Несомненным достоинством компонента является наличие собственого свойства сохранения и загрузки в файл (без проблем – во внутреннюю область):

Memo1.Lines.SaveToFile (GetHomePath + '/Имя файла. txt’);

Memo1.Lines. LoadFromFile (GetHomePath + '/Имя. txt’);

Другие функции работы с текстом в Memo:

Memo1.ClearSelection; // удалить выделенный текст

Memo1.CutToClipboard; // вырезать в буфер обмена

Memo1.CopyToClipboard; // скопировать в буфер обмена

Memo1.PasteFromClipboard; //вставить из буфера обмена

Memo1.SelText; //функция возвращает текстовую строку выделенного текста

Memo1.Undo; // отмена последнего изменения

Memo1.Lines.Delete (0); //удаление 0 строки

Memo1.SelStart:= 0; //начальное положение выделения

Memo1.SelLength:= 15; //Длина выделенного текста

Если необходимо всегда видеть выделенный текст, даже при переходе управления на другой элемент управления, то установите свойство HideSelection в false.

8.7. КОМПОНЕНТЫ ВЫБОРА CheckBbox и RadioButton

Компоненты CkeckBox и RadioButton используются для выбора уже известных условий.

Компоненты RadioButton обычно объединяются в группы внутри компонента-контейнера GroupBox; активна одна кнопка, для определенной группы, что достигается простым помещением группы связываемых кнопок в контейнер GroupBox, а также приданием одинакового имени (например «1») свойству GroupName.

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

Выбрать компонент можно функцией:

RadioButton1.isChecked:= true;

Работа с компонентом производится на свойства в Events: OnChange и OnClick, а также как выбор в коде:

if RadioButton1.isChecked = true then ….

Также удобно изменять текст при компоненте:

if RadioButton1.isChecked = true then RadioButton1.Text:= «Выбор сделан»

else RadioButton1.Text:= «Отказ от предложения».

Надо отметить, что компонент прихотлив, и довольно часто неизвестно что от него ждать; если он явно не виден в настоящий момент, то его состояние (isChecked) может и не считываться, в таком случае следует поставить ему в самом начале, когда компонент виден, в соответствие компонент Edit, который доступен в любом состоянии и в любом месте:

if RadioButton1.isChecked = true then Edit1.Text:= «1»; // В начале при выборе RadioButton

if Edit1.Text =– «1» then …. // в любом месте программы